I just ran your example and I'm getting `puts results` line to output "Hello", just as the program intends. I'm not sure why you're getting a different result.
In any case, I'm assuring you: getting the results "out of tasks" is trivially easy.
> Surely any real program will have all the work done inside a single top-level event loop.
I don't get this. Can you please explain more what you have in mind and I'll try to help clarify things.