In 4.4, we changed the task executor to no longer verify that the agent is alive before sending a task to it. The rationale was that in case the agent was offline at the time, the execution will simply wait for it to become back online, instead of outright failing.
However, turns out that this breaks heal/uninstall workflows in cases where the agent is truly dead, and will never respond. In those cases, it is necessary to fail the agent tasks, for the execution to be able to continue to the next steps (eg. removing the VM).
Therefore, we should re-implement a "is agent alive" check before sending a task to the agent.