Acredito que essa pergunta sobre estouro de pilha pode ser sua melhor aposta: link
Este tópico do Techguy.org também inclui mais opções com mais detalhes: link
As abordagens básicas são usar o WMI para escutar ou interceptar Win32_ComputerShutdownEvent ou ter algo em execução (possivelmente oculto) para o qual o Windows enviará uma mensagem de desligamento, escrito em algo que lhe permita interceptar o motivo do encerramento.