Суть квеста - конечный автомат. Который един для всех пользователей. Соответственно просто нужно реализовать "протокол" прохождения, привязанный к конкретному пользователю. Тогда бот при получении сообщения всегда будет знать на каком шаге находится каждый конкретный пользователь.
Либо движение по направленному графу. Когда точно известно на каком шаге находишься и, например, кнопками выводить варианты ответов. Тогда точно известно как продолжить с любого шага. Можно не вести протокол с привязкой к пользователям.