Ответ 1
Из документации MSDN:
Примечание
Эта функция немедленно возвращается. Если указанный поток не завершено, и функция завершается успешно, возвращенный статус STILL_ACTIVE. Если поток завершен и функция выполнена успешно, возвращаемый статус является одним из следующих значений: Значение выхода указанных в функции ExitThread или TerminateThread. Возврат значение из функции потока. Значение выхода потока обработать. Важно. Функция GetExitCodeThread возвращает действительную код ошибки, определенный приложением только после потока завершается. Поэтому приложение не должно использовать STILL_ACTIVE (259) в качестве кода ошибки. Если поток возвращает STILL_ACTIVE (259) как код ошибки, приложения, которые проверяют это значение, могут его интерпретировать означает, что поток все еще работает и продолжает тестировать завершение потока после прекращения нити, что могло бы поместите приложение в бесконечный цикл.
Так что в основном он все время проверяет текущий поток время от времени.
Кажется, это ошибка: