I didn't get around to testing the mentioned location of changing the password_hasher. After further investigation, I realized that the password hashes use a static hash and I was using a dynamic (per-user) hash.
Just in case anyone runs into this problem (non-static Hash):
My solution was to by-pass the existing authentication system all-together. I already had a custom User Model which sub-classed AbstractBaseUser. I simply overrode (sp?) the set_password and check_password methods to do the password checking on the spot; without delegating to django.contrib.auth.hashers
The reasoning behind this solution is that I ran out of time attempting to track down a method of passing my per-user value to be included in the Hash.
WARNING: This may not be a great idea. I haven't ran unit tests to see what sort of problems this will bring. Possibly none; I don't know until I do. Either way, I still believe the standard process-validation approach should be taken in case one needs to upgrade passwords or has multiple hash algorithms they want to use. I'm sure this work-around could be cleaned up to fall-back on the Django approach when needed. Either way, it feels clumsy and I'm sure there's a better way. Your mileage may very.