pinocchio1:
per programmare servono i mezzi ovvero conoscenza ed esperienza dello specifico
Beh, alla fine i concetti fondamentali e generali non sono poi tantissimi, è che per capirlo servono sempre anni 
riguardo di millis che ritengo indispensabile vorrei chiedervi: con quale criterio va posizionato l' inizio conteggio?
millis ritorna il tempo di sistema, è come leggere l'orologio (solo che è in millisecondi e arriva a 232), si può usare per misurare la durata di qualcosa (ti segni l'ora di inizio e vedi quanto è passato al momento della fine), per produrre qualcosa di una certa durata (ti segni l'ora di inizio e quando è trascorso tot si fa, o si smette di fare, quello che serve), o per produrre operazioni periodiche. L'errore dovuto agli oscillatori non quarzati è di 5..10 secondi all'ora.
L'inizio del conteggio è il momento da cui ti interessa iniziare a misurare/fare qualcosa, che sarà identificato dal verificarsi di una certa condizione.
Come si usano i flag per il reset?
Non sono sicuro di capire la domanda. I flag, bandierine, indicatori, piattini con fagioli sono solo variabili, merker, informazioni che servono per tenere conto di cosa fare o non fare, non un qualcosa di specifico e particolare legato alla macchina. Hai solo variabili in cui memorizzare dati, operazioni (aritmetiche o logiche), e condizioni da testare per fare questo o quest'altro.
Lo stesso punto di inizio può essere usato per più conteggi?
Anche qui non capisco. Per stesso punto di inizio intendi la variabile o il momento memorizzato nella variabile? In genere è molto più comodo avere una diversa variabile tempo per ogni conteggio/temporizzazione. Una stessa variabile intesa come contenitore può essere usata in contesti/punti diversi purché non contemporaneamente... se ci sto cucinando la pasta non posso metterci i würstel (o meglio, niente lo impedisce ma i risultati finali saranno diversi da quanto ci si aspetta).
Cercherò anche maggiori informazioni sulla programmazione a stati finiti che da quanto ho capito dovrebbe stabilire un filo logico in una sequenza di operazioni
In ambito PLC si parlerebbe di SFC, solo che l'SFC è "vincolato" e ISOnormato a ben precise scelte/possibilità/limiti.
Qui vedilo come metodo per pensare / descrivere / progettare un processo partendo dall'elenco degli stati di funzionamento possibili (generalmente corrispondenti alle "attese di qualcosa"), dagli eventi a cui rispondere in ogni stato, ed infine dalle azioni in risposta agli eventi. Se ne sta parlando anche in questo post per evidenziare come questo metodo permette di descrivere/simulare il tutto in italiano, e tradurlo poi praticamente uno a uno. Permette modifiche e ampliamenti in modo semplice (si possono aggiungere eventi e stati senza stravolgere le altre parti). E soprattutto permette il completo multitasking... nella la mia sveglietta per la camera (con ArduinoMega) girano almeno una ventina di macchine a stati che si occupano in parallelo di tutte le sotto operazioni.