"How do you plan to do this, without introducing a new Poll call?"
I plan to add a new poll call.
But only for new applications; old RO apps get to see the same behaviour as before.
Actually on umpteenth thought, even that may not be necessary.
How about a Poll response code (for modern applications, and only when requested) that indicates that the application's request has been queued, but the Wimp is busy. The application may then do some non-Wimp work (decoding video or audio, for example) before trying again. As long as it doesn't wait too long between tries and doesn't hog the processor in the mean time, it should provide a good, RO-like, user experience.