Uso ciclo while all'interno del loop principale

Salve a tutti,
sto lavorando con Arduino Mega 2560, modulo GSM-GPRS-GPS e modulo SIM908.
Ho scritto uno sketch abbastanza complesso e che posso sintetizzare nel seguente modo:

setup(){}
loop{
...
funzione1();
funzione2();
...
}

funzione1(){
while(test){...}
...
}

funzione2(){
//richiesta post
inet.httpPOST("www.miosito.com", 80, "path/file.php", dati, "read message", 0);
....
}

Il ciclo while della funzione1() dura circa 20 minuti. Non appena tale ciclo finisce, viene eseguita la funzione2() che, come si vede, dovrebbe inviare dei “dati” mediante una richiesta post.
Il problema sta proprio in questa ultima funzione poichè arduino non riesce a connettersi con il server e quindi non effettua la richiesta post.
Se faccio si, che, il ciclo while suddetto duri di meno (ad esempio 15 minuti circa), la richiesta post viene effettuata con successo.
A questo punto mi chiedo: il modulo GMS, dopo un pò di tempo, entra in timeout ed è necessario riavviarlo, oppure arduino si imballa considerata la notevole durata del ciclo while?
A qualcuno di voi è mai capitata una cosa simile?