Conversion to nanoseconds was overflowing with 32-bit builds.
... from double to uint64_t. Limit use of floating point in public API as much as possible.