Mah, ho letto i link ma non so dirti perché a te si resetti comunque tutto Arduino quando cerchi di fare il reset della shield.
A parte questo, il blocco della shield come l'hai determinato? Questo serve per cercare di farmi capire meglio la causa, prima di cercare una soluzione. Fai queste prove e dammi l'esito passo-passo.
Ossia, tu avrai un codice per fargli fare da (diciamo) web server, quindi risponde sulla porta 80 TCP: col browser provi a collegarti (dopo quel paio di giorni di attività) e cosa ottieni come errore sul browser? Quando si blocca prova ad aprire un prompt comandi e tenta una connessione manuale con telnet sulla porta 80, ad esempio:
C:>telnet 192.168.1.100 80
(assumo che l'Ip sia 192.168.1.100 e che sia un IP statico -confermi?)-; inoltre se non hai il Telnet client, attivalo andando in programmi e funzionalità, Attivazione e disattivazione funzionalità di Windows, e seleziona Telnet)
Se la connessione non avviene, comparirà un messaggio tipo:
Connessione a 192.168.1.100...Impossibile aprire una connessione con l'host. sulla porta 80
: Connessione non riuscita
In questo caso prova a vedere se almeno al ping risponde:
Esecuzione di Ping 192.168.1.100 con 32 byte di dati:
Risposta da 192.168.1.100: byte=32 durata<1ms TTL=63
Risposta da 192.168.1.100: byte=32 durata=1ms TTL=63
...
Se risponde al ping, è il server web che si è "incartato" e vedremo quindi cosa provare. Se non risponde neanche al ping, prova a staccare e riattaccare il cavo Ethernet e ricomincia i test (tutti, dal browser).
Se invece il Telnet si connette, lo schermo si svuota e presenta il cursore in alto, tu scrivi (non vedrai cosa digiti ma fallo attentamente perché non puoi correggere):
GET / HTTP/1.1
e premi due volte Invio.
Se vedi una risposta (anche di errore tipo Bad Request), il server risponde e funziona correttamente.
Se invece non vedi alcuna risposta, allora la connessione TCP avviene ma è il web server che non risponde.
Fammi sapere, ma se possibile posta anche il tuo codice così capisco meglio cosa fai.