Tone of piezos is heavily reliant on the preamp used. In my experience people who don't like piezos either heard one without a preamp at all, or at best a bad quality preamp. At the end of the day, an in-body mic needs a good preamp too, so it's a wash from my perspective. The good news is, there have been a lot of advancements over the years and there are a lot of great sounding onboard preamps. Bartolini and graphtech are popular for piezos. Piezos and mics are both pretty easy to add, though piezos and don't have the drawbacks that an internal mic has - namely, the mic will pretty much always pick up background noise - just rubbing the bass against your shirt can make a lot of noise through an in-body mic, and playing a mic-equipped bass in a loud setting can be a problem. Piezos can pick up background noise too, though IME not nearly to the same extent.
If you have a local music store, I'd go there and try a bunch of acoustic basses out and see what you like the best. Your goal of getting it to sound like an upright is going to be a challenge, and will be much more about the setup, string choice, and so on rather than the type of pickup.