this could probably be done without a fork by setting an attribute on the worker to indicate that TERM has been sent, then sending KILL after e.g. `@timeout + 0.5` at a later point when this method is called.