There's definitely a need for this, since long-running threads are a huge pain to manage -- connections die, heartbeats fail, etc., and any job that's doing a lot of sleep() loops or waiting for asynchronous notifications should probably be managed by a scheduler like this instead.<p>What's hard though is breaking up a synchronous execution model into discrete steps, and storing continuations between them.