Você não fornece muito contexto, então vou fazer algumas suposições aqui:
1) Você está atualmente usando o systemd, como foi introduzido em um upgrade do Arch há alguns meses. Se você não sabe o que é systemd, você precisa se educar. Vá ler os artigos do wiki do Arch sobre systemd e o Arch systemd FAQ .
2) Você afirma que o sistema "pára" quando você sai do XFCE. E então você diz que "o problema é ..." que, às vezes, quando isso acontece, o sistema sai para uma tela de login do console inativo. Estou assumindo que ambas as questões são "o problema", certo? Você está usando 'halt' como em pausa o processo de desligamento, não como em pára o sistema (ou seja, desliga o computador)
Primeiro, acho que você precisa de solução de problemas, então estou me perguntando por que você não usa os fóruns, pois eles são mais adequados para esse tipo de coisa, mas agora você está aqui ...
A) Você precisa verificar se realmente está usando o systemd como seu init principal. B) Você precisa solucionar o processo de desligamento.
Se você não está usando o systemd, você precisa atualizar de qualquer maneira, então comece com isso. Se você estiver, então o systemd está encarregado do processo de desligamento. Eu suspeito que a parte "parada" do problema é apenas esperada para que algum serviço pare. Pode esperar muito tempo. Tenho um problema em que ele aguarda que minhas unidades de rede aceitem desmontagens, o que significa 300 segundos em que nada acontece antes que ele desista.
Sugiro que você tente desligar o computador e deixá-lo por um tempo, digamos, quinze minutos, só para ver se está realmente 'morto' ou apenas esperando.
Independentemente do resultado, você precisará descobrir qual serviço está causando a espera / congelamento. Existem algumas boas instruções sobre como resolver problemas de desligamento do systemd aqui
EDIT: Se você achar que o sistema não está apenas pendurado por um longo tempo antes de desligar, mas está realmente preso, você precisa seguir as instruções "Shutdown Never Finishes" logo abaixo.