При попытке убить процесс, он тупо зависает, но не умирает. Что делать?
У TASKKILL  есть ключ F - принудительное завершение.
Это происходит, потому что сигнал завершения подается основному потоку приложения, а этот основной поток в это время может быть зависим от другого, который как раз и не отвечает. Т.е. приложение радо бы закрыться, но сигнал до основного потока приложения ещё не дошёл. 
Промониторить это можно через "Монитор ресурсов", где можно увидеть цепочку ожиданий.


Соответственно, завершив ожидаемый поток, завершится и требуемый.

Мой "ответ" чисто справочный. Частичное решение написали выше