What behavior are you using? Many of the things you described are handled by 8direction/platform behaviors.
I suggest using "simulate control" action, because setting velocity vectors directly doesn't always work as you think it should. Here is an example:
github.com/Scirra/Construct-bugs/issues/6323
Platform behavior has the same issue afaik.
Acceleration/deceleration is handled by the behavior.
Direction Change: you can detect when it happens (use a variable), and briefly increase Platform deceleration on the character. Say, set deceleration to 400, start a timer for 0.2s, on timer set deceleration value back to 200.
Extended Jump: again, this is already implemented in the behavior - jump sustain setting.