I tried the time_pulse_us function with a mixed result. I fed the microcontroller (Pi Pico) from a function generator. The duration I got was a mixed bag with times all over the place. I then used the same setup but with Arduino IDE and used the pulseInLong function. The result was exact to three decimals.
My conclusion is that MicroPython is not suited for time critical applikations. At least not with the time_pulse_us function. It is too unreliable.