Improve respawn logic

Two changes here:

1. Recognise when workers have intentionally exited and don't respawn then.
2. Add options to specify respawn delay and limit.