SI-7221 Rewrites pollForWork tail-recursively

Getting back to the interrupted `WorkItem` after an interruptReq was done with a recursive call needlessly leaving cruft on the stack.

I have a [personal branch](https://github.com/huitseeker/scala/tree/issue/SI-7221) at the tip of which is a [test](https://github.com/huitseeker/scala/commit/3dda4ba976f05964432a9adef7b1a01d2d8eb80b) hitting the interrupt request queue, which consistently fails-before, and succeeds-after this fix. I don't think it should be inserted in the suite because of its resource-intensive nature, though.

Fixes #1001407

review by @retronym, @dotta