You can try playing with input itself. Use a targetinput vector variable to store what player input is, and if it’s bigger than current then override, if shorter (vector length) then use vinterp or something to smoothly get closer and closer.
I’m currently fighting built-in movement component myself, I need stopping distance but sort of not quite there yet. So much so that I wrote my own movement component which works for most part (capsule trace returning locations that will be initial overlaps if I move there hurts though).
Anyways, if it’s for this much then it’s probably going to work one way or another.