Old thread, I know, but I just had the exact same problem with a KT controller and this was the only place where I found anyone mentioning this issue. So for anyone who has the same issue, here's how I fixed it.
In the controller parameters, there is option L3. This option only exists for dual mode controllers that can work with sensored and sensorless brushless motors. If this option is set to 0, the controller will only activate non-hall (sensorless) mode when there is a hall sensor failure. If this option is set to 1, the controller "will choose the proper model to use according to the controller system optimization" as stated in the documentation. This value defaults to 1 and setting it to 0 fixed this problem for me.
Be aware that this still means that in case of a hall sensor failure, for example if the sensor cable becomes unplugged, the motor will reverse direction immediately and with force! Depending on the vehicle you are riding, this may have catastrophic results. I recommend using the motor in sensorless mode if there is a significant risk of getting hurt if this occurs!
A bit more technical detail if you are interested. The motor I have is direct drive, has 30 magnets and a hall sensor angle of 36° (360°/30*3, the hall sensors are spaced three magnets apart). I suppose that this unconventional hall sensor angle is causing the problems. With the hall sensors connected, the direction of rotation is somehow opposite to the direction that results without hall sensors connected. Therefore, it is safe to assume that the "controller system optimization" at some higher speed decides that it prefers to ignore the hall sensor signal. But this then results in an immediate reversal of direction of rotation.
On the plus side, I now have a hacky reverse switch by simply disconnecting the hall sensors. My controller doesn't have a reverse mode by default.
I haven't yet tested while actually riding. So it may turn out that the controller doesn't actually work better with this hall sensor arrangement being used. So I might still prefer to run this motor sensorless, if there are any issues.