worker: Requeue as part of the worker
Created by: efritz
We current have several paths that requeue jobs inside of the handler that is processing them. We should instead return a special type of error containing the delay that is checked in the worker layer. We current check the error return of the handler to indicate whether the error is transient, permanent, or nil. We should just add a few more conditions to this list.