В общем, RegisterHotKey вообще не зависит от рабочего стола и работает на всю систему. Кстати, на мой взгляд, это косяк системы: пока мы на другом рабочем столе, хоткеи во всю срабатывают за дефолтным столом, а мы об этом и знать не знаем! Вот тебе и "блокировка"
Но для моего случая хоткеи не подходят - потому что поток всё равно ничего не получает - он приостановлен и дожидается через WaitForSingleObject, пока закроется запущенная им программа. В общем, придется-таки запускать ещё один процесс-киллера. Правда, на новый стол его отправлять не обязательно