Some sort of toggleable official "on duty" switch is a very commonly requested feature. Taxis are immune to having their vehicle stolen - it helps but I agree with willi that more could be done. Perhaps a rule such as: you may not attempt to kill or rob someone who contacted you via taxi dispatch unless they engaged you first.
Ideally, when you get your taxi license you'd get access to a dispatch menu like medics have, and civs who request a taxi would get a notification when a taxi driver decides to take their call. The dispatch menu could designate calls as "en route", "queued", or "decline service".
Another idea (a bit more out there): actually implement a meter, with customizable rates per km and per minute, just like in a real taxi. Menu would have boxes to fill in the 2 rates, plus 4 buttons: start, reset, pause, charge fare. To prevent sketchiness surrounding actually collecting the fare, the "charge fare" function would charge the total on the meter while you and your passenger are inside a (optionally) locked vehicle. Passengers would have to click "ok" or "cancel" on a pop up after the driver tries to start the meter, in order to prevent abuse.
Even without implementing the meter, being able to charge fares while inside the vehicle would be a huge improvement and a huge safety buff for taxi drivers.
Other things: more vehicles! Taxi-skinned plane so you can paradrop people for hire but not worry about getting your plane stolen.