Не пишу на Java, но ошибка явно из-за проблем с подключением. Вашим решением будет при разработке сидеть через VPN, а сервер просто использовать забугорный. Хотя, на многих российских хостингах всё в порядке с телеграмом. Внутрь самого бота VPN вставлять незачем, это бессмысленно и создаёт исключительно проблемы.
Нечего просто через задницу код писать. У тебя получение данных происходит один раз, а надо делать получение внутри соответствующего метода, как минимум (про SOLID и т.п. я пока вообще опущу)
https://vuetifyjs.com - лучшее что есть на данный момент.
Сегодня как раз 2.0 версия релизнулась, а там md 2.0 и куча других фишек. Сам долго использую этот инструмент.
С nuxt дружит отлично, там в nuxt'e даже стандартный пресет есть с vuetify.
На каждом тике таймера записывайте текущее время.
на следующем тике получайте текущее время и смотрите разницу, на эту разницу корректируйте таймер.
То есть у вас например тик раз в секунду. Но тут между тиками прошло вдруг 30 (вкладка поменялась, пользователь переключится в другое приложение, компьютер внезапно уснул - все что угодно) - значит надо отнять из оставшегося времени не секунду а 30.