This basically depends about experience with libraries. OpenLayers is a one large size file library with lots of classes for several use cases. Leaflet is smaller so it has less features.
- Tracking of the drivers cars using a tablet through my web app.
If you intend to use tablet devices you can also switch to native APIs of your system like Android and others. Since you plan to use it on vehicles this is not mandatory. Using a native application can reduce battery use, network use.
- Conversion of a given address to lat-long.
This is not tied to map viewers, you can do it with OpenLayers by any service invocation using the OpenLayers.Request instance and parsing response. This is called geocoding.
- Showing a route between start and destination lat-long.
This also is not tied to map viewers, you will also need a service to this. You can download and render routes with OpenLayers without problems. It will be faster then google.maps v3 in some cases. I can not tell about leaflet speed.
In OpenLayers prefer the canvas renderer, it is much faster then SVG.
- Completely free of charge
The OpenLayers client is free of charge and has most of his API documented.
Leaflet should have a newer code what can include more bugs too. OpenLayers can be easily attached to google closure-compiler. I chopped off unnecessary classes from it and reduced code size about 60% of distributed size.