Il principio di funzionamento mi sembra corretto.
Per curiosità ho fatto qualche prova... e ho scoperto qualche anomalia sul funzionamento del connectTimeout. In particolare, mi sembra che venga ignorato:
- se il DNS non riesce a risolvere l'URL specificato (ho provato con http://www.googlea.it);
- se il DNS risolve l'URL e la connessione va verso una porta in grado di rispondere ad una connessione (ho fatto una prova su vari domini Internet, come google.it sulla porta 80, specificando 1 millisecondo di timeout)
Funziona correttamente invece se specifico un dominio valido ed una porta (presumibilmente) scorretta, come http://www.google.it:90

Quasi quasi apro un nuovo post per avere anch'io lumi...