Swapped out tick-logic closures in Strand for a state-machine approach. Un-abstracted some shared code in GenerateCoroutine.