I was in my admin account when I generated the link (not in anonymous mode).
UPDATE: In an attempt to reproduce the problem with a different email address, I sent an invite link to myself at my secondary address (an .edu address hosted by Gmail) using my personal iCloud email.
After I clicked on the invite link and registered, Discourse sent an activation email to the .edu address. I went into the admin account and verified that the new user account was not in anonymous_users. I logged out as admin and was then able to activate the account through the activation email link.
After deleting the new user, I tried the process again using the automatically-generated invite email, and everything worked as expected.
Since I couldn’t reproduce the problem with a different email that I control, could this somehow be an issue related to this one person’s email account and/or email provider? Both of my previous invite emails soft-bounced at different times, when I was able to send him email through my personal account. (I don’t think it’s the email provider, since both he and I are on Mac - Apple and I can send emails through Discourse to my personal account just fine).
Also, in an attempt to troubleshoot the deliverability issue, I just sent this person a Deliverability Test email through admin/email and MailJet shows it as delivered. The only thing that’s changed between the last time I tried emailing him through the system and now is that I put a DMARC record in the DNS (I had already gotten SPF and DKIM working but had no DMARC).