go into terminal and type
sudo nvram boot-args="-v"
This should put you into VERBOSE mode, so don't freak out when you see a bunch of "nonsense" on your screen instead of a progress bar...
watch it carefully, and see what is displayed last when it is hanging.
one you are done with VERBOSE mode, go back to terminal and type
sudo nvram boot-args=""
*NOTE* if you have messed with any custom kexts like for the 2011 MBP/2012 MBP wife card swap....then you will need to go back to terminal and type
sudo nvram boot-args="kext-dev-mode=1"