You're deep in the #haskell hole when you think
floor . (* 1000) . nominalDiffTimeToSeconds . utcTimeToPOSIXSeconds <$> getCurrentTime
is just fine for getting the current UTC time in milliseconds.
But I'm actually serious, the way "NominalDiffTime" works, having high precision and still being integral/fractional, is very nice, slightly overcomplicated numeric type class hierarchy notwithstanding.