Многопоточность как раз то, для чего нужны сети Петри. С однопоточным workflow справились бы конечные автоматы. К фишкам в сети Петри можно привязать бизнес-данные (например, порожденные документы и прочие артифакты). Если на переходы навесить проверку и модификацию этих данных, можно сделать их и тьюринг-полными. Облачивать такие workflow будет всяко проще, чем копаться в сохраненных дампах стека.
Опять же вернусь к anecdotael experience, dsl для описания стейт машин с условными переходами (не знаю как теоритически назвать верно). Т.е. стейт декларировал по каким событиям в какое состояние может перейти + таймауты и дефолтный переход. И машинки могли форкаться. В общем понимать и работать с этим было тяжело
Особенно когда по факту, людям приходилось в этой форме описывать workflow, который можно бы было описать достаточно простым скриптом (про то, что можно на практике правда не было проверено, может и нельзя, но сходу проблем не было видно)