@zeener I haven't personally done any studies on it, but this method has seemingly been working for me:
Only require the user to input their email and password on registration.
Have a profile page where they can add a username and the rest of their details
On login, have a message noting that...