Answer
Retrying a message resends it with its ORIGINAL Message Input Data — retrying doesn't pick up any correction made after the message was already generated, which is why suspending and resuming didn't help. To actually get the corrected data to send, the process/event that originally triggered the notification needs to be re-run from scratch, which generates a brand-new Application Message carrying the corrected input data — if that new input data is now valid, the new message should process successfully where the old stuck one couldn't, since it was permanently tied to its original (bad) data.