I seem to remember that at PyCon AU I was somewhat torn and thought __init_subclass__
was the least bad option, but as mentioned, that monkeypatching… ugh.
It’s also worth noting that whatever we do here is going to have an impact on how we structure other, similar things in the rest of Django that allow user-supplied subclasses. Middleware excluded, as that’s a separate mess.
I’m still not totally against the separate-subclasses approach here either, though it does then mean we’re baking the “async is for special pages only” approach in, rather than allowing it to be sprinkled in among existing code.