Do timeout calculation in jinja

timeout set as a non-persistent fact does not override the timeout
extra_var. Additionally, the setting of the value does not occur
until the task has a result, which means that the callback setting
the value happens after the async will have started. However,
setting the elapsed_time for the previous task does carry over to
the beginning of the subsequent task, so the elapsed_time value is
available for calculations at the async invocation. If we do the
timeout - elapsed_time calculation in jinja, all of the correct
values should be in scope.

Change-Id: If08f8c79622f40ba92c3455d393416d880dd1bef
2 files changed