Sounds like it will work. If you record initialTiming, finalTiming, initialReading, and finalReading, periodically, it should work.
Do you know how to use millis() or micros() to do a thing periodically? These are all good: