So maybe you won’t actually resume the continuation more than once, but it sounds like you still would need to somehow store/remember fibers (i.e. the stack segments associated with handlers) after they’ve been already used (fully popped off the stack) by the “main” path of execution. This leads to exactly the same problems with the performance cost of copying/persistence and semantical issues with resources and optimizations related to “entering the room once but leaving twice”.
Are you aware of One-shot Algebraic Effects as Coroutines in Lua? (I haven’t read it but sounds related)