micros() macht es "gleich richtig mittels TIMER".
Du kannst natürlich den Code von micros() anschauen, sehen, ob was in deinem Spezialfall überflüssig ist und weglassen, oder was anderes (z.B. definierter Startzeitpunkt) in deine spezialMicros() zufügen, und du lernst sicher eine Menge dabei, das Rad neu zu erfinden.
Die Arduino Funktionen zu Interrupts und Timern erlauben längst nicht alles, was direkt an Hardware-Unterstüzung möglich ist, aber wenn die gebotenen Funktionen das machen was man braucht...
( Ich nehme micros() )