Let's take a look at what happens "in the background" after you press <return> on the login screen:
Note: The Login window is handled by the loginwindow application, located in /System/Library/CoreServices.
- Your password is checked against information in Directory Services.
- Daemons in the /etc/mach_init_per_user.d are loaded.
- Your customized environment is set up.
- Files are set to show the appropriate permissions and privileges for your account and status.
- Unix-style environment variables are checked and executed.
- Items in your user profile's Login Items are run.
Chances are the hang up is the last item in the above list. You can temporarily disable these login items by holding down the <shift> key before selecting the Login button. If the login process now completes as expected, you will need to troubleshoot which of those items is/are the culprit.