From my brief reading of the ticket, it looks like the signal call for the built-in User (not AbstractUser, which is never directly used) only works because that model is already loaded by the time the custom models are inspected.
My guess is that the internal Django models are loaded first, and then app models are loaded. Since you're defining the signal handler in your app, you would be able to reference the built-in models but not any models that haven't already been inspected.
I doubt there is any magic involved, it's technically a race condition.
Admittedly, I'm not deeply familiar with the mechanics in this scenario, but it's my best educated guess.
-James