Il pulsein tiene il programma fermo in attesa di impulso, io non lo userei, il millis va benissimo se ti è sufficiente un minimo di 20 ms , non credo che con tutte le istruzioni da eseguire il micro sia in grado nel loop di rilevare tempi più bassi, altrimenti devi andare ad agire sugli interrupt per ottenere valori molto più bassi.
ciao