Это гарантированная доставка, а не гарантированная обработка) Гарантированная обработка на вашей стороне должна быть)
Что бы такое сделать нужно выполнить какие-то действия перед ack, например, записать в базу. А значит опять возвращаемся к борьбе с тем, что очередь выросла и мы получили два одинаковый сообщения в очереди :(
Не согласен, это нормальный кейс и вы должны уметь его обрабатывать. Такие архитектуры строятся идемпотентными, и то что сообщение пришло два раза не должно ни на что влиять.
а если у вас на очередь подписан не один получатель, а несколько, то ак после обработки за пределами таймаута приведёт к тому, что сообщение будет доставлено другому получателю и в результате обработается больше, чем один раз