The lock should not sleep at all, just throw a `LockedError` if another task already is holding the lock.  That way we don't lock up the worker and allow it to process other tasks while this task is requeued.