interrupts must be completely disabled or else the result read back is -1 if an interrupt occurs while reading. Fixed. This alters metric timings by 24us, but since most metrics on slow machines take ~3000us or more, and the metrics run with interrupts disabled, I'm allowing this variance without making the decision to invalidate the entire database and start over.