Graceful worker shutdown

* Finish up any in-progress jobs, then call the callback when at a good stopping point