Na verdade, era na verdade um arquivo de paginação corrompido. O que funcionou para o Vista na questão ligada funciona também para o Windows 7, aparentemente.
Não sei ao certo por que o Windows demorou tanto para desligar antes do ponto em que ele parou de funcionar ou se isso está relacionado.
Para referência futura:
Para resolver esse problema, fui para as configurações do sistema > guia avançada > desempenho > memória virtual e, em seguida, paginação desativada. (Eu selecionei "nenhum arquivo de página." Definir o tamanho para 0mb aparentemente não funciona). Em seguida, ativei a paginação novamente. Depois de uma reinicialização, tudo estava bem. O Windows não ficou mais preso e foi capaz de desligar.