eh.... mettici pure che quando usi il sistema ad eventi TimeOut avrai una gestione non prelativa delle funzioni dichiarate in ciascun blocco:
Queste funzioni di temporizzazione, oltre ad avere una temporizzazione abbastanza aleatoria, finiscono in una coda e non sai se verranno eseguite in un ordine prestabilito (ad esempio mettendo due funzioni con timeout uno multiplo dell'altro).
Io non mi fiderei di un sistema simile per implementare protocolli in bitbashing, ma userei un normale loop in cui ho perfetto controllo sull'ordine di accensione e spegnimento dei singoli pin, e soprattutto "tempi deterministici" a meno di interrupt.
Quindi boh, se uno non sa programmare non ha motivo di mettersi a scrivere cagate su microcontrollori in javascript, si trovi un altro hobby :p