Quindi a che serve?
Gli ESP in raltà
NON sono come Arduino dove hai SOLO il tuo programma che gira e sei tu che controlli tutto ...
... gli ESP sono sistemi "
multi-task" in cui il tuo programma è solo uno dei task che girano contemporaneamente all'interno.
Ora, per evitare blocchi e malfunzionamenti, negli ESP è implementato un meccanismo di "
watchdog" (
questo puoi averlo anche in un normale programma Arduino per controllarne il corretto funzionamento) il quale, se vede un blocco di più di X tempo, effettua un "
reset" dell'ESP con conseguente riavvio.
Dato che tu, nel tuo programma, potresti utilizzare un qualche cosa che
blocca l'esecuzione degli altri task, come la funzione
delay() che, normalmente, è bloccante, è stato introdotto un meccansismo che evita tale cosa ...
... semplificando, per farti capire, nel ESP, la delay() in realtà
NON blocca completamente tutto, ma, con regolarità chiama la funzione yield() che ha il compito di passare il controllo ad un altro task (
che così può essere eseguito per ciò che deve fare), resettare il "
watchdog" (
così da evitare il "reset" del ESP) e poi tornare al tuo ciclo di attesa ... e la cosa si ripete sino a quando non è passato il tempo d'attesa da te richiesto.
Spero di averti,
più o meno, chiarito le idee

Guglielmo