Ensure all exit_cleanly methods get invoked for workers even if they raise exceptions

Fixes #5