Ищи инфу по finite state machine (FSM) и как она реализуется в pyTelegramBotAPI.
Если коротко - для каждого пользователя нужно хранить его текущий шаг (начало, выбор предмета, выбор задания, и т.п.) и ассоциированные с этим шагом данные. Т.е. нужно хранилище вида ключ-значение. Ключом будет ID пользователя.
В качестве такого хранилища можно использовать и обычный словарь (если допустимо, чтобы бот всё забывал при перезапуске), или базу данных.
И да, ты спалил токен бота. Меняй его теперь.