Информация о состоянии ядра потока доступна в структуре ядра KTHREAD , доступной через блок потока в режиме ядра.
Вопрос в том, как это отобразить или открыть для программы в режиме пользователя? Вероятно, лучшее решение, учитывая время и навыки, - написать драйвер ядра.
В качестве альтернативы вы можете посмотреть счетчики производительности Windows, которые уже могут это сделать для вас. В любом случае вам придется прибегнуть к довольно неточным опросам (вы не получите уведомление, КОГДА состояние потока меняется).
WMI-класс Win32_Thread может быть полезен для вас, особенно поле ExecutionState
.