Owntracks seems to do a decent job and does km/h by default. They call it velocity rather than speed.
I know it’s not exactly what you’re asking for, but if you are open to trying something new and this detail is important to you it’s another option.
Sorry to revive this rather old topic, but I noticed this as well. Like with OP, I know the GPS speed is accurate (well, over 20-30 km/h at least) since other apps show the speed in the sync with the speedometer.
I searched through the HA android app github repo, but from what I’ve seen the app only gets the location data from android directly and the speed attribute is defined as integer and mapped to the data from the OS.
Good thing I muted all my notifications while researching this and coming to the same conclusion. gps speed is taken from the google location services which measures in meters/second.
I clarified that already in the bug report, but I did ask whether HA should also use float instead of int and to update the companion documentation.
At least now we know why…
EDIT: the companion documentation already covers it. No idea why my google skills let me down here.