Working queue

As per usual, comments are welcome :)

Fixes #380


I think I'm okay with this change then, thanks! One thing that's not completely clear to me yet:

> "Expired" jobs will be moved to FailedQueue because they didn't finish executing.

It cannot happen during the unregistration because... that's the issue. So some later process must do this, right? When does this happen? And by whom? Does any future worker do this while it's writing/reading data from this registry?