Du hast eine sehr spezielle Art des Programmaufbaus, die für Deine Probleme verantwortlich ist. Task 4 wird immer wieder gestartet, wenn eine Verbindung reingekommen ist. Passiert das aber nicht, ist Task4_Ende nach ca. 40s erreicht und von dort an wird keiner der if-Blöcke mehr ausgeführt, somit macht der Arduino nichts mehr, reagiert auch nicht mehr auf eingehende Requests.
Du solltest Dir diesen zeitgesteuerten Ablaufplan nochmals überdenken. Alles, was nicht wirklich zeitgesteuert sein muss, würde ich von den entsprechenden Events abhängig machen und nicht von der Zeit (z.B. der NTP-Request ist dann zu Ende, wenn die Antwort des Zeitservers eingegangen ist und nicht nach 5 Sekunden).