One last update…
I’ve attached a week’s worth of my logging of messages that triggered my source retry loop. Every single one of them had embedded attachments, so that’s clearly the cause of the issue. I started with a retry limit of 30 (every 0.1 seconds) and ended up increasing it to 50 and then 100. At a limit of 100 retries (10 seconds), all but a very few messages are obtaining the source within that timeframe.