В общем, напишу ответ на тот случай, если кто-то будет в таком же затупе сидеть.
Конкретно на моём хостинге есть SSH-консоль и планировщик задач Crontab. Запуская файл через консоль, виртуальная машина работает до закрытия вкладки.
Crontab мог бы помочь, но его можно запускать лишь раз в 60 секунд — ограничение хостера. Поэтому, если запрос пришёл через 10 секунд, то на 50 секунд наступает тишина и затем Crontab заново запускает файл.
Вся эта баллада актуальна лишь для бота на LongPoll (VK API), потому что Callback API сам отправляет запрос на мой сервер и ждёт ответа "ок".
Соответственно, кому нужен бот на LP, вынужден покупать хотя бы виртуальный выделенный сервер.
Почему Callback не всегда подходит?
На LP можно выпустить себе несколько ключей, Callback можно привязать только к одному серверу. Если в сообществе уже есть что-то стороннее, использующее Callback, то или придётся это отвязывать для своего бота, или делать для бота другое сообщество, как я и поступил.