APR を使えばプラットフォームごとのスレッドの実装に気を遣わなくていいじゃーん!
ってことでクラス図を書いたりなんかしてやる気マンマンだったのですが、関数のコールスタック EG(argument_stack) とかその他諸々のスレッド間で独立していないと困る情報がグローバル変数の _zend_executor_globals 構造体にごっそり収められているため、拡張モジュールで実現するのは無理なことが判明しました。
Zend Extension でもたぶん無理で、それなんて YAPV? って言われそうなぐらい ZendEngine に手を入れない限りは実現不可能。
そもそもコルーチンがうまく動かなかった時点で気付くべきだったのですが...
親スレッドの状態が子スレッドにコピーされ、かつ子スレッドがサンドボックスとして動くライブラリってありませんかね?