“Modifying existing uses of {% url %} is not realistic” - Agreed. I’d probably be more inclined to go with the modified template in that situation.
Actually, I’m going to withdraw the idea of using the Site framework. Doing some more reading makes me realize it’s not as dynamic-friendly as I seem to remember. (Something that I didn’t pick up on while reading about it earlier is that it expects to run each site under a separate container with a separate settings file - clearly not suitable for what you’re trying to do.)
So yea, I think you’re settling in on what’s likely to be the best solution for what you’re trying to manage.