Почему прерывается работа бота?
Это проблема на стороне библиотеки 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/...

Лично я выбрал второй путь.
Возьми в try/except и поставь таймер 

try:
     #Твой код

except:
     time.sleep(10) # Таймер на 10 секунд