Я спросил у непосредственного начальства, есть ли альтернативный способ? Начальство сказало, что не знает.
У меня, разумеется, есть идея -- нужно писать процесс как конечный автомат. Но и у этого метода есть проблемы. Во-первых, надо понимать, как это работает. Во-вторых, всё придётся переписывать и вводить какие-то фиктивные состояния в случае вызова одной и той же функции из разных мест, чтобы она могла определять, откуда она вызвана.
Я применял пару раз методику автомата, но к проектам "с нуля". Получилось интересно, по крайней мере, мне.
Есть ли ещё способы?