Это проблема на стороне библиотеки telebot'а. Выхода тут два:
1) Ставишь запуск программы с помощью systemd утилиты. В ней в настройке [service] укажи Restart=on-failure. В этом случае если скрипт завершится, то systemd его перезапустит. Ну или поставь перезапуск каждые 30-60 минут.
2) Переходишь и переписываешь на aiogram. В 2015-2017 годах, возможно, либа telebot была актуальна, но прогресс не стоит на месте. А telebot, увы, стоит. Кривая реализация поллинга, проблемный next_step_handler, медленная поддержка новых версий Bot API и т.д.
Аргументы для перехода на aiogram:
- это полноценный фреймворк, т.е. позволяет сделать больше полезных вещей;
- асинхронный, что делает его быстрее в некоторых задачах;
- поддерживается Python 3.7+ и выше, что сподвигнет обновить свой старенький интерпретатор и использовать новые возможности языка;
- множество встроенных «помощников» (синтаксический «сахар»), улучшающих читабельность кода;
- оперативные обновления (поддержка новых опросов появилась в тот же день, что и в самом Bot API);
- русскоязычный чат поддержки и обсуждений, где сидит, в том числе, и сам разработчик фреймворка;
- мой любимый пункт: нормально работающий поллинг.
(
https://mastergroosha.github.io/telegram-tutorial/...
Лично я выбрал второй путь.