for the ecm to notice a bad sensor and give you a trouble code, the sensor has to register a certain value like shorted or open. Some sensors, when they start to go, dont break enough for the computer to see it as bad but still effect the performance of your car. The o2 sensor might be telling your car that the gas is 30 rich, your car readjusts to 30 leaner and now the o2 sensor is giving you a perfect signal, meanwhile the car is running like crap because its too lean. If it does it when cold, I would start with the o2 sensor and the engine coolant temp (there might be two, one for the gauge and one for the ecm). This last one would be telling your computer the car is normal temp thus turning off the "chocke".
Not a compression problem by the sounds of it