Uhmm la mia soluzione sembrerebbe + che semplice
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
sembrerebbe che così non attende una risposta remota ma si fa i fatti suoi gestendosi con il tempo che imposto io indipendentemente dalla risposta remota.