Chris, quello che fai è appunto una media mobile, in un altro post l'avevo consigliata mi pare a Minestrone per un suo problema di acquisizione dati, viene usata assai spesso per filtrare dati provenienti da convertitori A/D, sensori I2C, SPI che possono essere sporchi, però in genere la si applica in routine che non dipendono dal main loop, in genere o si lavora sotto interrupt od in DMA che blocca il micro per pochissimi microsecondi.
Come ha scritto Smsteves avrai un ritardo di, a mio avviso, 40 x 8 = 320ms più forse altri ms per calcoli e varie, non è sicuramente un sistema reattivo e forse al limite anche per il tuo camion ( a proposito: complimenti veramente molto bello e ben fatto).
Il problema di Arduino è che molte librerie sono bloccanti, cioè quando ne viene richiamata una funzione il micro resta in attesa fino alla fine della stessa, hai provato a vedere cosa succede se spegni il Tx dopo aver mosso lo stick del gas o dello sterzo ? Se la routine resta impallata in attesa degli impulsi il camion diventa incontrollabile, andrebbe perlomeno inserito un timeout che metta tutto in stato di sicurezza.
IMHO