1)
package.json
- это для JS и npm.
requirements.txt
- для python.
2) Не совсем понял вопрос, если про бота. То тут два варианта получения данных, это webhook и polling. polling - это когда твоя программа спрашивает появились ли новые сообщения. webhook - это когда сам сервис к примеру telegram отправляет тебе уведомление о новом сообщении. Вот тут описана разница -
https://grammy.dev/guide/deployment-types.html#how....
3-4) Насчет 30 минут, бот просто засыпает. То есть после 30 минут сна, он будет просто отвечать дольше. Более подробно можно прочитать на сайте Heroku.
https://towardsdatascience.com/how-to-deploy-a-tel... - в конце этой статьи есть информация по Heroku.