Yeah, I've had the exact same problem while exploring coroutines. Stackless Python is the only implementation I'm aware of which allows you to trivially serialize its microthreads.
In the end, I prefer to just use mostly "stateless" Lua scripts, with all the saveable data managed in C++.
In the end, I prefer to just use mostly "stateless" Lua scripts, with all the saveable data managed in C++.