Hope I'm not interfering here, but...    Why not let the restarted worker clear the locked value/worker id upon re-initialization?

* It would require some way to have consistent worker ids over time.
* It would require some way to manage the workers over time (restart workers last seen > `worker_update_time` ago)

However, it would prevent a job from killing a worker and then getting picked up by the next worker killing it until you are out of workers.  As far as I understand, the current implementation would be vulnerable to a rogue job doing just that.  Am I wrong?