I have an issue with calling three years "long term" support. Most companies won't update to the new LTS for 9 to 12 months in order for any issues to be ironed out, so that means you get only 24 to 27 months on the LTS. Between CVEs and upgrading to dotnet6 before the end of life on dotnet3.1 most of my coworkers and I have gotten almost no new coding done on our applications this summer (and this was after a three month blitz to get all of our code up to dotnet3.1 ahead of the dotnet2.1 end of life less than a year ago). As long as the LTS doesn't introduce a lot of breaking changes then it's not that big of a deal but when you have to refactor and rewrite non-trivial chunks of code this gets to be really wasteful.
What did you have to rewrite when upgrading from .NET 3.1 to 6? If all you had to touch was ASP.NET startup changes, that's hardly 1 day's worth of work.
I think this is part of the intent. Letting software get painfully out of date is something that wrecks code bases and companies, yet that's the way they naturally want to operate. Since they've always operated that way they're not use to budgeting for the resource to continually stay up to date. I prefer to upgrade on a regular cadence and even think LTS is an anti-pattern. The regular cadence means upgrades are as small as possible when they do happen, and people experienced with upgrading are more present in the engineering team. The alternative is shit gets 5 years out of date and then 10 years out of date.