Resposta curta
Conflito / corrupção de recursos com o TeamViewer.
Resposta longa
Houve uma conexão recente do TeamViewer ao meu PC, e o problema se manifestou durante essa conexão. No entanto, como o problema persistiu após a cessação da conexão e como as reinicializações não resolveram o problema, o TeamViewer foi excluído muito rapidamente como suspeito.
O TeamViewer tem opções para converter as teclas digitadas na conexão. Normalmente eu acho que isso é feito no lado remoto, e não no lado do host, o que significa que o TeamViewer remoto transmite o caractere traduzido, então o host só vê o caractere traduzido e não o caractere digitado original. Dada essa informação, você pode ver como era natural descartar o TeamViewer como a causa.
Seja como for, eu desinstalei o TeamViewer na máquina host (aquele que ficou preso em francês) e meu layout de teclado adequado foi restaurado! Quando eu reinstalei o TeamViewer, o problema não retornou.
Meu melhor palpite quanto à causa real seria um recurso corrupto do TeamViewer que estava traduzindo a entrada local e devolvendo-a de volta à máquina local em vez de a um host conectado. Quase como se o TeamViewer estivesse em loop, comportando-se como remoto e host simultaneamente.