Вот она: Boost coroutines instead of state machines? Maybe... Очень интересные выводы в конце этой статьи сделаны. Имхо, желающим использовать короутины в продакшене имеет смысл ознакомиться и со статьей, и с выводами.
Я же, в силу своего темного прошлого, все-таки остаюсь приверженцем подхода на основе конечных автоматов. Да, кода приходится писать чуть больше. Зато потом нужно меньше голову ломать.
Ну и еще об одной вещи касательно конечных автоматов. В статье показан, на мой взгляд, самый корявый способ их описания: через enum и один большой switch. Между тем, в C++ на указателях можно писать более понятные и удобные в сопровождении конечные автоматы, например: