Currently, the timeout step simply kills whatever processes were launched during execution of its body, and then throws an exception. This makes it difficult to perform any automated debugging on these processes, since they are killed by the time the user finds out that they are hung (or slow). It would be nice to be able to get some information about the state of affairs before things are killed, and maybe even perform safe shutdown steps prior to kill.
(and I'm willing to try to make a PR if this seems reasonable):
The new "beforeKill" closure can be used for clean shutdown of complex tasks, analysis of problems, etc.
One workaround may be to wrap whatever you are running and trap signals, but that's ugly and error-prone (and will likely cause zombies)