Google para algo como "executar o programa como serviço windows 2008" e você encontrará um número de programas que executará um executável como um serviço. Pode ser desajeitado e você terá que testá-lo para ver se ele é compatível com seu aplicativo, já que o seu programa foi projetado para rodar assim. Não há como reagir a não ter um console para exibir ... mas se ele for executado como um serviço, provavelmente é melhor do que deixar uma sessão RDP em execução.
Realmente, você está tentando embaralhar algo para se encaixar em uma função para a qual ele não foi projetado; O Windows não era destinado a executar sessões RDP apenas para executar um aplicativo específico ao iniciar a sessão, e, de acordo com o meu conhecimento, não há uma maneira de fazê-lo.
Outra alternativa seria ter um programa de monitoramento em execução em outro sistema que pudesse "pingar" o servidor para a existência de um determinado serviço ou ter um arquivo de lote / script executado no momento da inicialização que enviaria um alerta de que o servidor reiniciado para que alguém possa fazer login e iniciar a sessão RDP. Se você tiver serviços de monitoramento do sistema em vigor que possam detectar o tempo de atividade ou a existência de um processo específico no servidor que pode ser sua melhor solução alternativa.