This has been happening to me every once in a while on my Toshiba Satellite L300D laptop since 12.04 and it occurred a couple of times to me after installing 12.10. On my computer it didn't happen all the time. I'd estimate about 1 in 15 shutdowns would result in an endless purple screen that required holding down the power button to force a shutdown of the computer.
It hasn't happened for a while now, however, and I think it has something to do with my recently having disabled the "speech-dispatcher" service at start-up (It always seemed like the last thing Ubuntu would try to shutdown before hanging.
I have no reason why this would have helped, but if you want to give it a try, it can't hurt anything (unless you need your computer to talk to you!)
Install Boot-up Manager (BUM)
$sudo apt-get install bum
Open boot-up manager from the dash and then uncheck the box beside "speech-dispatcher" save and quit. At the very least you will save yourself some RAM and make your boot-up and shutdown times quicker, and hopefully solve stop the shutdown from hanging (fingers crossed!)
All that said, even if it works it is just a work-around. I think this is a bug and needs to be reported.