Example of a bug in Team. `m_returns` ends up in an inconsistent state when `blockOnce()` is called “recursively” from multiple coroutines. Could it be the result of a compiler optimization (i.e. `m_returns`’s new state not being saved to memory before `yield()`)?
If so, how can I get the compiler to do the right thing?