What I'm asking is that we decide on what the right data to store in PipelineRunStatsSnapshot and then fix it in a more principled way. Shouldn't just be magically coercing things in the ctor
we can do this in two places instead (the instantiations of PipelineRunStatsSnapshot), but that doesn't seem better. in the long run, it would be better for PipelineRunStatsSnapshot to contain datetimes and for them to go over the wire as something other than floats, so that a timezone-aware frontend library can deserialize them as something other than a raw timestamp.
LGTM. Note that per https://stackoverflow.com/questions/6999726/how-can-i-convert-a-datetime-object-to-milliseconds-since-epoch-unix-time-in-p#comment65890915_11111177 - we need to ensure the datetimes used here are "dumb" and not timezone-aware or datetime_as_float() will throw an exception; shouldn't be an issue since we're controlling the datetime generation.