Às vezes, o processo pode ser bloqueado em um recurso ou thread ou algo assim, e encerrar ou liberar isso libera o processo e o deixa terminar. É um pouco parecido com o de quando você exclui (na lixeira) um arquivo no Explorer que está em uso, na verdade ele não desaparece e parece travado (sem retornar imediatamente um erro em uso / bloqueado), mas se você sair do programa que o bloqueou em cinco segundos, o arquivo desaparece subitamente.
Eu já vi isso acontecer de vez em quando, especialmente com programas que têm uma caixa de diálogo pop-up ou algo que de alguma forma fica oculto; Encontrar uma maneira de descartar a caixa de diálogo permite que o encadeamento termine, permitindo que o processo termine.
Suspeito que, com o aumento da prática ainda relativamente nova da programação multiencadeada, coisas como essa se tornem mais comuns, pelo menos por um tempo.