I've heard people complain about "bottlenecking" in the OBDII feed, but others have said the data acquisition rate is not a problem.
Obviously, getting the data from the OBDII connection should be the easiest route. But how can you "plug into" this full time while still making the connector available to run diagnostics? In other words, how can you "tap" the data full time and still be able to plug in or use another tool for diagnosis? Since there is only one connection, is some sort of "pass through" adapter available?
RE: Speed readout. You can get this directly without going through the OBDII interface. Most vehicles have some sort of speed sensor. In GM and Ford cars, for example, this attaches either to the speedometer (using an IR sensor) or to the transmission (using a Hall-effect sensor IIRC). This sensor generates "pulses" which are fed to the ECU. Later models couple the sensor directly to the ECU which then relays these pulses to the speedometer in the cluster.
If you know how your vehicle is wired, you can get a speed signal somewhere. On older GM cars, for example, you would simply hook up to the VSS output which is either 2000 or 4000 pulses per mile, depending on the model. On newer cars you would tap the output from the ECU which goes into the speedometer cluster (both analog and digital clusters both have this input). As long as you know how many pulses per mile, your software can use that info to display the speed and the mileage!
Fuel used is similar. Ford vehicles with a trip computer get a pulsed feed from the ECU which tells the cluster how many gallons of gas have been used. I actually got the specs from Ford many years ago. It's so many pulses per gallon. You can use that to make your own trip computer and track instant and average fuel economy as well as distance to destination!
IIRC, older GM cars send injector pulse width information to their clusters and trip computers via the serial data line. I don't know if this is a "pulses per gallon" type of signal or just the actual time the injectors are turned on. If it's the latter, you would need to know the flow rate of your injectors to calculate fuel used. If an injector flows a certain amount per millisecond, then the "injector on time" in milliseconds will tell you how much fuel has been used.