Trouble Understanding Behaviour at IRQL=DISPATCH_LEVEL

The text is very clear.
What may be less obvious is that when code is executing at IRQL DISPATCH_LEVEL or above, it cannot wait for any Dispatcher Objects that are not already signaled.

A few must says.
In DISPATCH_LEVEL, scheduler is effectively disabled. So you cannot just wait for a object. You can, however, acquire spinlocks. What matters more is that you are not allowed to stay on high IRQLs for too long.

Why it does return?
KeWaitForSingleObject calls the dispatcher (scheduler) to make a wait on the object you specified. Since the dispatcher interrupt is masked off at DISPATCH_LEVEL, as I stated above, the call is never made. So the current thread isn't put on wait list, and KeWaitForSingleObject returns immediately, since the code continues to run instead of being put to wait by scheduler.