Which reminds me. I forgot a very important way that user space signals
the kernel as to its intents.
The kernel can see whether code is sleeping by choice or sleeping because
someone blocked it (eg a page fault). The kernel also knows a lot about
the event being waited for (much more so in -rt than base).
We don't capture all of that info but it seems it would advance progress
in the right direction to do so better.