Surge pricing is usually still cheaper than a cab or a limo.
I've never had an experience with Uber like you describe. I've used it a couple of dozen times and it's always been flawless. I have much better experience with Ubers than with cabs. Limo services are better than Uber but require pre-planning and cost more. Your mileage has varied, apparently.
Personally, I'd like to see an Uber competitor that doesn't set prices at all, but instead uses a real-time auction model. They'd have to set some nominal, baseline prices to kick it off, but from there drivers should be able to "bid" by specifying the multiplier that they'll accept (which can be greater or less than 1). Passengers should be shown a list of available cars, with driver ratings, prices (based on driver bid) and arrival time. The list should include drivers who are currently carrying a passenger but will be dropping off soon, with appropriate arrival times (dropoff ETA + a minute for dropoff + travel time to pickup). That would enable drivers who set particularly low bids to stay busy all the time with very few gaps.
In addition, riders should be able to make an offer for a specific trip if none of the nearby drivers is cheap enough for them. The offer would show up on the devices of all not-currently-driving drivers nearby, and the drivers could choose to accept or reject. If the driver accepted, the rider would then have the opportunity (based on driver rating and arrival time) to accept or reject.
Besides allowing prices to settle on the correct values in a market-driven way, this approach should eliminate questions about whether drivers are employees or independent. If they set their own prices as well as their own working hours and using their own equipment, they're clearly independent.