Update, 2021-02-22: There is more information in a whole series of posts on Asynchronous Messaging.
Yielding to popular demand - and against my better judgement - I have created a NuGet package for the code I previously wrote for handling “fire-and-forget” tasks in ASP.NET.
Why is this against my better judgement? Because it’s almost always the wrong solution, and making the wrong solution easy is digging a pit of failure rather than a pit of success. However, a lot of people want to use it anyway (and many people are actually using worse solutions because I didn’t make this one easy), so I put in plenty of warnings and published it on GitHub and on NuGet.