У вас проблемы с логикой. Всё в мгновение пойдёт по вульве как только напишет второй человек. А если будет больше, то каша будет просто у всех.
Для таких чат-ботов используется база данных. В которой хранится состояние каждого пользователя и для каждого отдельного пользователя будет по-разному происходить проверка условий в зависимости от последнего состояния (текущего шага).
Как только кто-то пишет. Идете в базу, забираете состояние текущего пользователя (текущий шаг) и реагируйте на его сообщение относительно текущего шага. И так для каждого сообщения.
Критика:
У вас ужасный, не понятный код. Куча вложенных условий. Магические строки, магические числа. Переменная city сравнивается со строкой "Назад". Как это логически вообще обосновать?
Глобальные переменные, ошибочное использование принципа работы бота: longpoll.listen() - это метод для одного глобального цикла