Да, все объекты ядра, удерживаемые процессом, будут освобождены, включая блокировки.
Основная проблема с TerminateProcess заключается в том, что процесс не имеет права голоса в этом вопросе: если он удерживается в каком-либо глобальном состоянии (файлы, общая память и т. Д.), То у вас нет гарантии, что после процесса все эти данные находятся в согласованном состоянии. прекращено.