Yup, just as I say, I'm sure there are solutions to these things if you know the answers. I did look long and hard at the time though. We were using a version of Django where the auth/user stuff had just changed and there were no good examples of how to extend the user model (frustratingly there were good examples for the previous version).
Regarding the email stuff, my criteria for a framework is that I'd like it to send real emails on live and fake ones on dev. That is, email everything to me on dev along with a little header showing who the email was going to etc. Invaluable for testing.
The admin is amazingly malleable. Almost everything can be overridden and replaced. There's plenty of nice debugging/logging solutions (Werkzeug+Django Extensions being my favourite). Email switching between dev/producution is trivial (unless I'm misunderstanding you).
There ARE some clunky parts to customizing auth - mainly around extending the User model - but it's not that terrible.