The cost of toggling physics on and off shouldn’t be significant. When physics is “off”, the physics object still exists in the physics engine, its just controlled by your code and not PhysX - ie. “kinematically”. This is so that the object can push other dynamic objects out of the way.
When I tried it, I had turned physics enable off, but didn’t turn it back on. I suspect it might not actually do anything if you turn physics back on. That was the case with the version I tested. If you experience something different then there may be some added complexity to the Vehicle code or version differences I’m not aware of.
When you call SetActorLocation (non-teleport) on a kinematic object, it doesn’t move it right away. It sets a target position and waits for the next physics simulation step where it will then move to the new location. This way if the kinematic object is in contact with anything dynamic, it will push on them with the correct velocity resulting in the expected response from things that collide with it.