There isn’t a solution that’s quick and easy, but that’s how things usually are on gamedev. I’ve been doing this for few years and just sharing here what I’ve found out myself.
Besides the suspension issue, just simply lack of control is one thing that is causing trouble. You can fix friction issue if you just slide 0 friction colliders (wheels) on terrain instead of using physical materials, but then you need to calculate the friction and wheels angular velocities yourself on code and you’d really want to do that at more predictable time steps than what Tick can offer. You’d also want to use additional traces to check the connection to a ground so small bumps will not stop your traction (which leads to the vehicle twitching around, like seen on this project when that happens). This isn’t as simple to do as the pure constraint setup as you’d then need to model all aspects properly, starting from engine. Then again, if one does all that, going to non-constraint setup isn’t that far away anymore.
I didn’t really mean like hills or mountains but things that are uneven and can make small bumps, like the curb you mentioned. Game levels are full of small details. Just try this vehicle on VehicleGame demotrack and you’ll see what I mean. Besides that, constraints don’t work well on physx terrain (ue4 landscape). If you use meshes, you have to use complex as simple and it’ll become pretty expensive quickly. Do also note that even if your CPU can handle it, average players computer might not (unless you test it on a weak CPU yourself). Complex as simple can work if it’s just selected part of the terrain, like roads that don’t have a lot of polygons.
If you carefully prepare your ground plane where you drive this kind of vehicle and don’t go to high speeds, you can make it work. Issues at high speed is not only the bumps on meshes (which you can avoid if you do a really careful level design) but also the lack of control over the friction as mentioned before. And having things out of control is never a good thing on gamedev.
Slightly related to this topic, I recommend anyone working with physics to watch this talk: Designing with Physics: Bend the Physics Engine to Your Will. It doesn’t give all answers to the issues on this thread but it may bring some insight why things happen like they do with physics engines.