Bug report #634625 identified how curl returned timeout immediately when
CURLOPT_CONNECTTIMEOUT was used and provided a fix.
diff --git a/lib/url.c b/lib/url.c
index 817bb6d..92c4dd9 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -1764,6 +1764,10 @@
/* Store creation time to help future close decision making */
conn->created = Curl_tvnow();
+ /* Set the start time temporary to this creation time to allow easier
+ timeout checks before the transfer has started for real. The start time
+ is later set "for real" using Curl_pgrsStartNow(). */
+ conn->data->progress.start = conn->created;
/***********************************************************
* We need to allocate memory to store the path in. We get the size of the