Я обычно после нажатия кнопки удаляю сообщение, чтобы убрать клавиатуру и не было второго нажатия (тем более часто оно просто приведет к ошибке). Ну или можно редактировать сообщение убрав клавиатуру.
Для этого запоминаю id сообщения в сессии пользователя
У меня инлайн кнопки под сообщением, которые удалять ну никак нельзя, потому что может понадобится повтороное нажатие через время. Поэтому нужно сделать ограничение какое-то на дабл клик по кнопке, но гугл мне ничем не помог :(
AnonTesting, тогда запоминайте время в БД что пользователь уже нажал эту кнопку и проверяйте время. Запомнили время нажатия, сравнили было ли нажатие ранее, сравнили не нажимал ли кнопку 10-30-60 секунд назад. Если нажимал, останавливаем
AnonTesting, ну если без БД можно сохранять в файл, я сохраняю в текстовый файл в json формате, название файла chat id пользователя. При обращении проверяете файл, загружаете данные из него. Хотя честно говоря так делать не рекомендую, лучше работать с БД (сам делаю только для совсем простых ботов)