O IMO, uma abordagem melhor, seria estudar como seu aplicativo pode reiniciar automaticamente após a reinicialização do Windows.
Eu sempre deixei várias instâncias do Visual Studio, algumas janelas do Explorer e alguns navegadores em execução quando vou para casa e, quando volto na manhã seguinte, todos os aplicativos ainda estão em execução. Então, acho que pode haver uma maneira de detectar e registrar automaticamente o aplicativo para reiniciar.
Acho que isso pode ser mais documentado e facilmente implementado do que tentar evitar que o Windows seja desligado.