сразу будет положен после первой отработки.
Если ваш скрипт рассчитан на бесконечную работу, то "отработка" не произойдет.
Heroku делает некоторые проверки чтобы понять поднялся ли сервер, и вырубит его по таймауту если нет, но возможно их можно отключить.
Попробуйте одно из этого:
- почитать доки насчет того как хероку мониторит процесс, возможно можно настроить свои проверки
- может быть прокатит worker вместо web
- можно просто открыть нужный порт, чтобы хероку успокоился, для этого не нужен flask или еще что-то подойдет что-то минимально простое, которое слушает порт и ничего не делает (или отдает пустой ответ если хероку нужен именно HTTP). Никаких причин к тому чтобы "скоро накрыться" у такой схемы нет.