Re: if $car !="Taxi" then sleep(900)
It may be hard to justify, if you were starting from now, the various differences in terms of roadworthiness and insurance, but those aren't the only things. In London (and some other cities), some vehicles are required to be wheelchair accessible. For the capital, that's all the black cabs.
The latest also have induction loops, though I don't know if that's mandatory or not for new vehicles.
It would, I think, be impractical to have a single licence that enforces those requirements on both cabs and private hire vehicles, so some sort of distinction is probably necessary in that regard. To an extent, by mandating such strict vehicle requirements, which for people to spend a lot of money on a cab - hence the way in which some are now shared between day and night drivers - you also end up creating the logic that says "we've hit these people with extra costs, so we'll give them some specific privileges that may help make up for it."
Whether or not that makes sense in the modern world is arguable. But I do think it would be a massive setback from an accessibility point of view if we were to lose a whole fleet of accessible vehicles from London's streets. Sure, some enterprising Uber drivers and private hire firms would buy some accessible vehicles, but it would be nothing like on the scale of what we have now, would it?