Why does the answer have to be either 'taxi' or 'bus' when it's possible to combine the two and have a sensible multi-drop scheme? This would need a decent number of users (Higher than that needed to sustain a local bus company, I'd guess), but would manage to combine the two nicely, and with computerised routing of vehicles should be practical.
Like a taxi you book from where you are, and it'll come to collect you there and drop you off at your requested destination. Unlike a taxi though there could be others riding already, and the vehicle may divert to make pick ups/drop offs on the way within reason.
The result is something which is similar to a less direct taxi, but will be a a lot cheaper as it's multi-occupant and will have passengers almost continually, similar to a bus. It also means that there are less vehicles on the road as each one is carrying more people, and this reduction would actually improve as the service became more popular- it's easier to have efficient routes when there are more options available. Vehicles would likely range from large cars to small buses, things small enough to get through residential areas (I'm in the UK where getting something the size of a full bus down a side street would be impressive) but large enough to carry a few small groups of people.
If you want to keep the 'bus' mentality too then have scheduled pick-ups over the most-used routes, so 'There will be a vehicle arriving at Easterly School every ten minutes traveling to the city center, and arriving forty minutes later'. This may also do other pickups and drop-offs on the way but will arrive more or less when it says unless there are problems.