Looking at the code, I believe we are currently checking if a packet has been seen when it is processed. For packets with bad signal we use an RX queue that can have packets wait for 32 second at most. I believe this might be aiding in in unwanted retransmits, especially on busy nodes.
Also see #1380 as possible mitigation. But aside from that, I think we should mark packets as seen as soon as they come in, not when they are being processed after the delay.
Thoughts?