Instead of just restarting it inside the same ::run() call, mark it as waiting, so that it will restart at the next quantization point. This isn't a final or even fully correct solution, but it's a useful test of the idea.
6801c2cac2