Reverting synchronous TryLockOperation to use Thread.Sleep to avoid deadlocks