По идее это решается одной строчкой: curl_setopt($ch, CURLOPT_TIMEOUT, 10);
То есть переезжать на другой модуль только ради одного таймаута может оказаться не совсем целесообразно.
У себя заметил интересный момент. Раньше, при очередных подвисаниях модуля всегда считал, что очередные проблемы у сдэка, т.к., как правило, в этот же момент и лк сдэка и сайт жестко тупили, накладные не оформлялись и т.п. Но в последний раз заметил, что у меня модуль висит, а лк сдэка нормально работает. Начал ковырять курл запрос, у меня стоял таймаут 60 сек, выдавало ошибку, что не укладывается в таймаут. Увеличил до 120 сек - все заработало. Оказалось, на выполнение запроса нужно +- 65 сек, и в мой таймаут 60 сек не успевало. Первый запрос выполнялся туго, а все последующие из кэша моментально. У меня сервер в Нидерландах. Решил проверить, может проблема в сервере/айпи, может сдэк мой айпи как то ограничил. Развернул тестовый сайт на впс в РФ, этот же курл запрос выполнялся за 2-3 сек, который в ту же минуту на моем сервере в Нидерландах выполнялся +-65 сек. Подумал, может версия в курле, протестировал разные версии, в том числе и ту, которая была на впс в РФ, нет, курл не влияет. В итоге хостер ответил, что проблема именно в соединении между моим серверов в Нидерландах и сервером сдэка, и с этим ничего сделать нельзя, т.к. при соединении возникает больше промежуточных узлов, и на каком из них сильно тупит. Это видно в traceroute, вот пример соединения между сервером в Нидерландах и сдэком: http://prntscr.com/obsp0r и вот то же самое между сервером в РФ и сдэком: http://prntscr.com/obsplc
В итоге пришлось переезжать на сервер в РФ, чтобы подобного лага не возникало. Так что, у кого сайты лежат не в РФ - может тоже возникнуть подобная проблема.