Resumption-based IO systems?
This looks a lot like the I/O API described by Felleisen et al in A Functional I/O System (or Fun for Freshman Kids).  Basically, you write (in the simpler, non-distributed setting), a series of event handlers, each of which accepts the current state, and returns an updated state. Finally, there's a to-draw handler, which produces the "output" for each state.

If we recast this API slightly, we can package up the handlers and the current state together, and each time a handler returns both a new state and a new set of handlers.  We might call this package of state and operations an "object". :)  If we then make the result a pair of this object, and the "output", then we have exactly the type of resumptions.  

Interestingly, in the paper, Felleisen et al do exactly this when moving to the distributed setting -- every operation returns a pair of new state and "output" in the form of messages to be sent to the other participants in the system.