O Process Explorer conseguiu encontrá-lo. No começo, não achei que estivesse funcionando, porque a função arrastar e soltar não funcionou, mas consegui encontrá-lo pesquisando a lista em busca de processos suspensos.
Um autocompiler que tentei fechar cedo acabou se tornando morto em vez de fechar. Em vez de matá-lo, ignorei e continuei trabalhando. Isso aconteceu novamente alguns minutos depois e eu tinha duas janelas mortas.
Entrei no gerenciador de tarefas e matei o cmd.exe, mas ele só removeu uma janela. Agora, clicando em "ir para o processo" na janela morta só me dá a primeira coisa na lista de processos, independentemente do que é. Então, basicamente eu tenho uma janela cmd.exe morto que não tem realmente um cmd.exe anexado a ele, e não tem idéia de como matá-lo. Está lá há 3 dias e está começando a me dar nos nervos.
EDIT: Eu tentei usar o Process Explorer e ele apenas me diz que não consegue encontrar o processo.
O Process Explorer conseguiu encontrá-lo. No começo, não achei que estivesse funcionando, porque a função arrastar e soltar não funcionou, mas consegui encontrá-lo pesquisando a lista em busca de processos suspensos.
Existe um excelente resultado da equipe systernals na Microsoft chamada PSTools. Eles essencialmente transportaram o toolkit * nix ps para o windows.
A ferramenta específica do kit de ferramentas que pode ser valiosa para você é o pskill. Pskill pode matar svchost.exe e até threads de segurança csrss, ele irá bluescreen o sistema se você matar csrss e eu só noto que para analfabetizar o poder da ferramenta. Talvez ele mate o seu cmd.exe 'travado' ou o nome do processo que você estava executando no cmd.exe.
Aqui está o link para o kit de ferramentas.
Quando uma janela não vai embora, nem sempre é culpa do processo que possui essa janela. Pode ser culpa de qualquer processo que possua o material embaixo da janela. Um processo não é responsável por fazer sua janela desaparecer (além de apenas chamar DestroyWindow). Em vez disso, os processos que possuem as janelas que deveriam ser reveladas são responsáveis por redesenhar suas próprias janelas.
Por exemplo, o Explorer (não o IE, apenas o explorer.exe) possui a área de trabalho. Suponha que algum aplicativo tenha uma janela na sua área de trabalho, com nada mais abaixo dela, mas na área de trabalho. Se você clicar no X vermelho da janela e o processo chamar DestroyWindow, o Explorer deverá ouvi-lo e redesenhar a parte da área de trabalho que deve ser revelada. (Considere que a janela que está indo embora não tem idéia, não há como saber, o que está sob ela ... então, não é possível redesenhar essas coisas.)
Portanto: Se o processo (que não tem nada em sua janela, mas a área de trabalho) desaparecer, mas sua janela permanecer lá, isso geralmente significa que o Explorer está suspenso ou, pelo menos, o thread do Explorer que possui a área de trabalho. (Sim, a área de trabalho é uma janela, apenas não tem as decorações usuais.)
Uma solução alternativa é usar o Gerenciador de Tarefas para eliminar o explorer.exe e iniciar outro (no menu Arquivo da TM, Executar ..., explorer.exe). Você pode tentar isso neste caso.