That's a pretty elegant way of repeating. This ultimately ends up re-implementing trampolining, so I'm curious what the performance benefit is of this over using `TrampolineScheduler`. Have you compared the performance of the two?

If there is no benefit, then I think it would be clearer to use `TrampolineScheduler`. If it is better, can we just improve `TrampolineScheduler` instead to retain the clarity and so everywhere that needs it can benefit?