I was wondering what the specific mechanism used by car ECU's to detect misfires is, or are if there is more than one method.
This comes directly from this web site:
What it says, is that early OBD-II systems could not detect misfires, but since then a few variations on the theme have been implemented. The basic idea is that if a cylinder fires, it gives a kick to the crankshaft causing a slight variation in crank shaft rotation speed. The ECU has sensors that tell it the position of the crank shaft, from which it knows which cylinder should be firing next. When an ignition happens as it should, that's the power stoke and it gives a little kick to the crankshaft causing a slight increase in the RPM. The ECU sensors can tell it the crank position closely enough that it detects that slight increase. If the slight increase doesn't happen, the ECU knows that there was no ignition on that cylinder. Which is also how it knows which cylinder didn't fire, and how it reports which one it was through the code it throws.
Engine misfire can also be detected by looking at the coil voltage just after the plug is fired. When the fuel/air mixture actually ignites there are lots of ions and radicals floating around. This provides an easier path for electricity from the coil. If the mixture does not ignite for any reason the resistance is extremely high. An observant auto tech should be able to see this subtle voltage issue on a coil oscilloscope.
This change in resistance observation is over 100 years old, and is used in a device called a FID (Flame Ionisation Detector). This technology is common on gas heaters; in other words you can tell if a flame has gone out. I know that Volkswagen have implemented this in at least one of their cars.
Summing up: you can detect misfire by looking at spark plug voltage.