I have uncovered an "interesting feature" of the Position class which has consumed a few hours of my time in discovery.
When Position is derived from GPS, and the device is moving slowly, Position.Info.speed returns differently depending on the device.
A Fenix5 always returns a non-zero value, even when the device is stationary.
A Vivoactive-HR returns 0.00000 (speed == 0 returns true) at low speeds. I have not determined the lower boundary but in a few hours of testing, I have not observed a speed of less than 0.5 m/s on the VA-HR.