Downlink Being Resent Over and Over Again (V2)

Messy! (And in LoRaWAN 1.1 the DevNonce needs to be incremental, so would require you to persist state anyhow.)

Persisting state, or choosing a low power sleep mode that keeps state, is really the way to go for any LoRaWAN device.

(Aside: you need to store much more state, not just the uplink counter, especially when using ADR, or when using a region that sends network settings after an OTAA Join.)

You won’t get a different response there.