Sounds like a hanging driver really. These can be troubleshot successfully and repaired.
You said you booted into Safe Mode, I take it the system was stable in that mode? If so, that only reinforces that it's a 3rd party driver causing this.
If you want to try and find it, boot back into Safe and then open msconfig, click Start, type msconfig, click msconfig.exe in the search box that opens and then select the "Diagnostic Startup" option. Try booting regularily, and if it works properly go back into msconfig, select Selective startup this time, Uncheck all the boxes except :Load system services" and reboot. If it works properly, put a check in the Load Startup items" box and reboot. If it fails this time, then you know something it that list is causing the problem. Boot into Safe mode again and then in the Startup tab, uncheck all the items except for the first one, then reboot. If it boots properly, keep adding one more item in the list rebooting between each one until the failure comes back again. Then you know which one is causing the problem and you can uninstall and reinstall that item to repair it, or find an updated driver for it.
Good Luck