Думаю, вы банально упираетесь в размер памяти. Согласно
MSDN, для каждого потока по умолчанию резервируется 1 МБ под стек. 1400 потоков -> 1400 МБ.
А тесты ваши не показательны, т.к. в текущем варианте каждый поток почти ничего не делает, и вполне может быть, что потоки успевают завершиться, пока вы создаёте новые. Таким образом, цикл может крутиться очень долго. Добавьте в функцию потока вызов Sleep на 24 часа и посмотрите, как изменятся результаты тестов.