Eu tentei várias correções que estão em respostas a perguntas semelhantes em vários fóruns, e nenhuma realmente resolveu o problema. Aparentemente, a Microsoft inicia a restauração de cada janela assim que o prompt de logon é exibido, e verifica se o espaço na tela está lá quando o faz. Quando ele ativa os monitores, pode haver um atraso antes de um monitor ser detectado pelo sistema operacional, e o Windows usa um monitor simulado padrão, se ainda não houver um monitor detectado. A Microsoft gosta desse comportamento, pois impede a perda de acesso a janelas fora da tela se você reduzir o número de telas, especialmente depois que alguém desconectar um projetor de um laptop ao final de uma reunião.
Esse atraso no monitor tornando-se visível para o sistema também pode depender de como o monitor está conectado ao sistema (VGA, HDMI, DVI ou DisplayPort) e de como o adaptador gráfico relata a configuração do monitor durante o despertar. Com minha configuração (Radeon R9 260, monitores LG, primário no PowerPort, mais antigo, menor em HDMI), parece que a configuração do monitor não é totalmente visível para o Windows até que as pequenas janelas de saúde do monitor desapareçam.
Descobri que posso evitar a maioria dos movimentos e redimensionamentos se tiver paciência e cuidado com o modo como acordo o sistema.
O problema parece ser que pressionar uma tecla ou um botão do mouse inicia tanto o wake quanto o logon em uma única ação. Mesmo quando o início do logon está esperando você digitar uma senha ou selecionar um usuário diferente, ele começa a acordar as janelas da sessão anterior para economizar tempo. Por isso, pode-se observar a configuração do monitor para garantir que o posicionamento da janela seja válido antes que muitos monitores se ativem e se tornem prontos e visíveis para o sistema.
O truque é separar o wake do início do login. Uma maneira é usar o botão liga / desliga do computador para ativar, supondo que esteja configurado para isso. Um dos meus teclados tem um botão wake / sleep, e isso também funciona.
A maneira que eu geralmente uso é mover o mouse (uma tecla de seta também funcionaria) para começar a acordar o sistema, e então esperar o monitor acordar completamente antes de pressionar qualquer outra tecla ou o botão do mouse para o prompt de logon. Meus monitores exibem uma pequena janela de informações de configuração na inicialização, e se eu esperar até que ambas desapareçam antes que eu pressione uma tecla ou o botão do mouse para obter o prompt de login, as janelas geralmente aparecem onde elas pertencem. Espero para ver o fundo do papel de parede sem um prompt de login até que o início do monitor seja concluído e, em seguida, clique para exibir o prompt de logon.
Se eu começar pressionando o botão do mouse ou qualquer uma das outras teclas do teclado, ou se isso tiver acontecido desde que o computador entrou no modo de suspensão, mesmo se eu não tiver feito logon, ele iniciará o wake e o logon (exibindo o usuário padrão e aceitar a senha) ao mesmo tempo. Isso faz com que o sistema inicie o despertar das janelas, programa por programa, sem poder ver os monitores, e todos acabam no canto superior esquerdo do meu monitor principal. Às vezes, digamos que se eu movo o mouse, mas pressiono o botão muito rápido, alguns programas (digamos, Excel e Bing) têm suas janelas movidas para lá, e outros (Chrome e Word, talvez) ainda estão onde estavam. Eu acho que tende a confirmar minhas teorias acima de por que isso funciona.
Há também uma tendência de algumas janelas migrarem para baixo e acertarem um pouco na ativação; Eu não vejo muita solução para isso, exceto para estender a janela para o canto inferior ou direito da tela, ou pelo menos para perto dele (bater na parte inferior no Win10 tende a estender a janela verticalmente sobre as duas telas, em um configuração superior / inferior).