Unfortunately, a simple shutdown and reboot did not solve my problem. For those still having this issue (Apple logo appears, progress bar at 0%), the following appears to have fixed the issue for me (for now):
Taking a cue from member hadamard, I removed any extraneous .kext files from the /Library/Extensions and /System/Library/Extensions directories, as well as the /Library/StartupItems folder.
I had upgraded El Capitan over Yosemite, whereafter I could not boot up normally. I booted into the Recovery Disk, made an emergency partition of my 1 TB hard drive (ensuring that it did not erase my other partitions), and did an emergency El Capitan install on that. From there I was able to make a Time Machine backup of my original boot drive (I ought to start backing up more!) before wiping my original boot drive, installing El Capitan again, and then migrating my settings, users, documents, etc. back after install. Unfortunately, when I rebooted after all this, I had the same problem– as it turns out, Apple migrates almost everything in the Migration Assistant. Comparing the .kext files from the aforementioned directories (between the emergency install and the migrated/upgraded install), I was able to determine which ones to remove (HINT: sort list by date, the oldest files are generally non-Apple and likely your problem).
My fresh install of El Capitan contained 266 kext files in the System Extensions folder, and 10 in the Library Extensions folder. Any more than that are probably third-party files. I had over 300 kext files, and though I am sure only 1 or 2 of them are the root cause, I removed them all to be safe (copied to a non-system folder in case I need to put them back later).
Hope this helps some people!