As for a USB speedo/tacho... good luck finding one. I've been looking. I know the LFS guys made some rather expensive hardware to roll your own, but other than that.
As someone who has done quite a bit of hacking around with with actual tachs and speedos... it's all just pulse width modulation.
80s-90s era clusters generally have the VSS (Vehicle Speed Sensor) hooked directly to the cluster.
In general they produce a sign wave that bounces between -3V and +3V (or sometimes more like +/-1.5V) and the cluster counts the pulses based on how frequently the signal passes through the 0V range.
Newer cars are even easier and use a 0-3.3V or 0-5V square wave pulse driven by the computer... a lot of 80s and 90s era cars uses this signal type for Tachometer too.
--------------
I've been able to drive a speedometer using just a 555 timer and a capacitor to drop the bottom of the signal below 0V:
^the cluster doesn't actually care that it's not a sign wave... it just cares that it's dipping below 0V.
--------------
Basically my point is you could probably write an arduino script to interpret signals from a PC into a pulse wave that actual automotive gauges can understand... and once you've got the code written then your arduino becomes a ~$30 USB adapter.
For the speedo you'd need a configuration file to adjust PPM (pulses per mile) as that can vary WILDLY from gauge to gauge
for instance GM uses a 4000PPM signal while Nissan uses a 16000PPM signal.
Similarly for the tach you need pulses per revolution... tachs were originally design to tie into the ignition coil so they would get a pulse every time a spark plug fired, so if you figure a tach from a 4-stroke 4-cylinder motor would get 2 pulses per revolution... however newer cars use hall effect sensors with the signal cleaned up by the computer before being sent to the gauges so they pulse at whatever rate the engineer determined... I know that most GM V8s actually pulse at the same rate as most 4-cylinders.
Most 90s era clusters have a potentiometer on the tach to fine tune it, and it's got enough adjustment in there at you can compensate a 6-cylinder signal to read like a 4-cylinder or visa-versa (these adjustment were likely use by the factory for models that had different sized motors so the cluster could work with either) newer clusters are again, just handled by the computer.
temp, fuel, and oil pressure gauges are generally resistance (analog voltage) based
I don't really have much interest in working on something like this myself but if anyone wants additional info on how gauge clusters work let me know.... and I can try to help out.
Cliff Notes: I think if you can get an arduino to convert a number on your PC into a pulse width rate on an output you've pretty much created a solution for this.