Tkinter рекомендуют для начинающих, а для более продвинутых PyQt. А вообще PyQt является оболочкой над Cишной библиотеки Qt, на которой написано очень много интерфейсов, в том числе для машин
Ну смотря, какую библиотеку используете, а вообще в общем случае надо запоминать шаги для каждого пользователя и потом смотреть на каком шаге пользовательн
elif message.text.lower() == '2' or 'Топ профилей' or '/profile'
Так не пишется так как надо писать
elif message.text.lower() == '2' or message.text.lower() == 'Топ профилей' or message.text.lower() == '/profile'
или можно написать message.text.lower() in [Топ профилей' , '/profile', '2']
И опять же в telebot у декоратора есть именнованный параметр, который отвечает за ввод команд, commands вроде называется
Для этого существуют библиотеки, например, pyTelegramBotApi, а писать бота с помощью хардкода, нужно в том случае, если нужна максимальная производительность, и еще никогда не храни TOKEN бота в коде, посмотри, что такое переменные окружения