try to log what happened in the worker after a timeout.

This change is based on #518 (see also #481). the only difference is that it doesn't try to check the time between a `SIGABRT` and a `SIGKILL`. The reason here is that we only handle this functions when the arbiter wake up (every 1.0 seconds by default). So there is no real need to check timeout +1. If the log didn't happen in the last second it's probably too late anyway but I am happy to revisit that if needed.

Also on `SIGABRT` it is exiting with the error status.