Я вчера в проге на заказ такую дичь сделал, что понял тока перед сном
в цикле для удаления сообщения, поставил if(!result.Successed) поставил await task.Delay(5 * 60 * 1000), и goto в начало цикла, чтобы если случился лимит запросов, подождал бы 5 мин, и снова попробовал