3D Space Movement, Acceleration, Deceleration, Top Speed. RTS like movement in 3D.

The distance error is normal because the float point number you get is never exact(not precise enough to be reliable).
So that includes, time delta, your new velocity and the distance calculated every frame.

my log is something like this at the end roughly matches yours.
LogBlueprintUserMessages: Distance: 796.412842 Elapsed: 3.939464
LogBlueprintUserMessages: Distance: 808.127563 Elapsed: 3.971839
LogBlueprintUserMessages: Distance: 824.139587 Elapsed: 4.007854

There are a few ways to “cheat” this behavior, but have different implication.
If you always have a acceleration, max speed, deceleration curve, you can always cheat to use the area map for v,t curve.
Then calculate the area to get your current position from start point(classic train travel distance math quiz).
But this, while more accurate, might be jittery and not as straight forward.( as you have to consider situation where distance is very short that you never reach max speed. )

Since you are aiming to have RTS, then the end position is always know(and precision isn’t that much of an issue).
What you can do is something like DennyR suggested(I did that with UFO to have make it have a constant distance against floor, so it has a damping effect).
You never know what’s the next delta time is, but if you want to stop smoothly, you can use smoothstep function(go google it) when your are close to your destination.
instead of a linear V(or constant a), your start/break will have smooth in/out effect.

if you ever wanted to use in-egine collision for something, then set location is not your best friend.
better start with “simulate physics” on with gravity off, and then build everything with force as input.
(it will make stop at exact point harder, but to some people it might be more straight forward. ie, for certain mass, if you let go your force with damping on, then they will always stop similar range.)