Eu notei o mesmo comportamento com um laptop Windows7. Parece que se um laptop é ativado usando WoL, o Windows o trata de maneira diferente. Se não houver entrada para a máquina dentro de 2 minutos, o Windows a colocará novamente em suspensão.
A solução é informar ao Windows imediatamente após acordar a máquina que ela não deve fazer a transição da máquina para um estado de baixa energia.
SetThreadExecutionState é a função que você precisa chamar para evitar Windows de transição para o modo de baixa potência. Dependendo das bandeiras que você chama, o efeito varia.
Você basicamente precisa ligar
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);
quando o Windows é iniciado e, em seguida, chama
SetThreadExecutionState(ES_CONTINUOUS);
uma vez que seu trabalho esteja concluído.
ES_SYSTEM_REQUIRED indica ao Windows que o sistema precisa estar ativo. ES_CONTINUOUS diz que o estado em que a máquina foi configurada, ou seja, sempre permanece acordado, precisa permanecer até que seja alterado, chamando a mesma função com um parâmetro diff. Uma vez que seu trabalho esteja concluído, você faz a segunda chamada. Isso é chamado apenas com o ES_CONTINUOUS. Ao não especificar ES_SYSTEM_REQUIRED, você está redefinindo o estado para o padrão, ou seja, permite que o Windows gerencie o estado de energia. E por causa do ES_CONTINUOUS, ele permanecerá nesse estado até que seja alterado de outra forma.
Btw, fazer a primeira chamada apenas impedirá que o Windows gerencie energia. Se você tiver qualquer outro software que gerencie energia, ele ainda fará a transição da máquina.
Eu sei, essa resposta vem depois de muitos meses da pergunta original, mas estou postando na esperança de que ajude o próximo cara que aparecer.