Solved the problem, but don't know why.
Here's what I did.
1. Edited com.apple.boot.plist in /Extra and set UHCIreset, ForceWake and EHCIacquire all to n
2. Rebooted and then I was able to boot into single user mode without getting stuck.
3. Re-edited com.apple.boot.plist and set all three values back to y.
4. Rebooted and I was still able to boot into single user mode.
So the problem is fixed
. But I don't know what fixed it!