Я полагаю, что время ожидания, которое вы видите, является временем ожидания операции CURL, а не временем ожидания соединения. Эти два разные.
CURLOPT_TIMEOUT
(и CURLOPT_TIMEOUT_MS
для значений в миллисекундах) управляют временем ожидания для работы, которую CURL выполняет после подключения. CUROPT_CONNECTTIMEOUT
(и CUROPT_CONNECTTIMEOUT_MS
) контролируют время ожидания для начального соединения (поиск DNS, установление соединения и т. Д.)
Если я прав, то если вы установите CURLOPT_TIMEOUT выше 1, вы обнаружите, что ваше время ожидания не сработает на 1000 мсек.