Isso vem acontecendo comigo de vez em quando no meu laptop Toshiba Satellite L300D desde 12.04 e ocorreu um par de vezes para mim depois de instalar o 12.10. No meu computador isso não aconteceu o tempo todo. Eu estimaria que cerca de 1 em 15 desligamentos resultaria em uma tela roxa sem fim que exigia manter pressionado o botão liga / desliga para forçar o desligamento do computador.
Isso não aconteceu por um tempo agora, no entanto, e acho que tem algo a ver com o fato de eu ter recentemente desativado o serviço "speech-dispatcher" na inicialização (sempre pareceu a última coisa que o Ubuntu tentaria para desligar antes de pendurar.
Eu não tenho nenhuma razão para isso ter ajudado, mas se você quiser tentar, não vai doer nada (a menos que você precise que seu computador fale com você!)
Instale o Gerenciador de inicialização (BUM)
$sudo apt-get install bum
Abra o gerenciador de inicialização a partir do painel e, em seguida, desmarque a caixa ao lado de "speech-dispatcher", salve e saia. No mínimo, você economizará um pouco de memória RAM e acelerará os tempos de inicialização e desligamento, e esperamos que isso resolva o desligamento do desligamento (dedos cruzados!)
Tudo isso dito, mesmo que funcione, é apenas uma solução. Eu acho que isso é um bug e precisa ser reportado.
Felicidades.