Я не видел этот конкретный симптом. Но я думаю, вполне возможно, что причина в том, что вы подозреваете - нет правила, согласно которому повреждение памяти должно вызывать сбои.
Представьте, что у вас есть такая структура данных
buffer[100];
threadHandle;
И у вас была простая ошибка с одной ошибкой в коде, заполняющем буфер. Теперь ваш дескриптор нити неисправен, и, вероятно, вы получите симптом, который видите.
Я плохо знаю вашу среду (сейчас я Linux / Java), но может ли другая причина использовать threadHandle после завершения потока? Так ручка действительно больше не действительна? Какое-то состояние гонки в вашем коде завершения?