From what I could see here, on the moment of collision you carts do have a velocity that's tangent to the rails, so you could just normalize that and use it however you'd like in the onBump instead of replacing with a new Vector3f (like, multiplying the current one with any factor between {-1,0}...