I have had this same issue. Repeatedly.
Initially, after a update to OS X 10.11.1 the computer didn't want to boot.
Tried a further upgrade to macOS Sierra to no avail. Same problem.
After some searching on the Internet I found that removing all .kext files from the /Volumes/My_hardisk/Library/Extensions directory into a newly created Unsupported did the trick and could boot again.
I than updated the machine from 10.12.1 to 10.12.3 and, much to my surprise the Mac hung again pretty much the same way as before. Exploring the Extension folder I found the hp_io_enabler_compound.kext file which I removed swiftly into a another, newly created, directory. As to be expected this solved again the issue and the Mac booted no problem.
For the sake of testing (it was a customer computer) i tried to startup from the rescue partition and, using the DiskUtilities.app did a Disk Repair. It exited with no errors but now comes the weird part: at a further restart I found the pesty hp_io_enabler_compound.kext file again!
I had to repeat the same procedure (single user mode + terminal ) once more to erase the extension file and be able to boot again. Unbelievable!
It would be nice to better understand what is the mechanism built into the System that recovers this file doing a disk repair as I expect this to repeat again and again at every update.
Any ideas out there?
/P