There is also at least one more case, suspended thread handling. If a thread gets suspended while in NtRemoveIoCompletion it is essentially not a in a wait queue, other threads can get the completion. This works correctly with generic server wait queues logic.
Oh that's weird. Definitely would not have expected that one.
That's the same for e. g., events, wait can't be satisfied (and auto event de-signaled) by a suspended thread which happens to be also present in event's wait queue.