Same response as to Andrew: AFAICS that just increases complexity.
The simple path for programmers is writing straightforward code that
does something like
or in pccardd's case,
to permit sleeping without having to write more-complex code that deals
with context transitions.
For slow-path, infrequently executed code, it is best to keep it as
simple as possible.