Capturing the discussion at https://github.com/coreos/airlock/pull/5/files#r279369060.
Manager.UnlockIfHeld can avoid a write-trip if the current id is not holding any semaphore lock. We should first augment Semaphore.UnlockIfHeld to signal back such situation.