Given a choice I'd reach for tokio's Mutex before futures::lock::Mutex -- they both have the same issue Rain describes (where if you drop them while invariants are violated, you get bugs later), but tokio's is at least fair (making starvation harder).
@baloo@zkat Yes, the problem is that if invariants are violated in the middle of the critical section (very normal for mutexes) then the mutex silently unlocks and the invariants stay violated