This is just too much of stuff: Async + concurrent distributed locks via 3rd party library via Task<>... Undebugable and mind blowing , probably waste of time. Current state is all way buggy! Should just hide normal lock via setnx behind target Async API and Async.Sleep with capped exp intervals