It may be worth checking your crank position sensor, sorry if you know this. The ecu detects misfire using the crank sensor which detects the timing teeth the flywheel. The ecu counts the teeth on each Rev until it should detect a missing tooth, which says the flywheel has done one Rev. If it counts an extra of missing tooth, it will cause an error which may put it in limp home mode. The ecu also looks at the timing of the teeth and expects to detect the acceleration of each cylinder firing. If it does not detect the speed up it claims a misfire.
It all depends on his the software is written on what it does!
Crank sensor fault, missing, extra tooth, missed accel, could cause limp home.
TPS fault, not detecting a closed throttle until late (if sticky).
Manifold air pressure fault. May cause a limit as the fuelling can’t be determined.
Temp sensor, I doubt that would set a Rev limit as even if faulty, the ecu would just assume 20C, but, who knows!
Baro pressure fault. Again, I’d expect the ecu to just assume 1 bar.
Vss, does strange things on the S1 Exige, I assume for compliance on emissions tests.
It could be any of the sensors as it depends on the software in the ecu.
Of course, check your plugs, plug leads and coil pack. It could be a genuine misfire which sets limp home but not a fault code. It’s not unusual for ecu code to ignore a few faults before setting an error code. Ecus also clear error codes if they have not seen the error for a while.