It is possible that the O2 sensor works, but not to the parameters required by the ECU.
Out of spec, but physically, electrically working.
Therefore brining up a fault code, disabling vtec for safety reasons.
By turning off and back on again, the ECU will perform a self check on the system and sensors, pick up that the O2 sensor is there, and working, but then after a while when it realises the sensor isn't providing the correct info, will go back to disabling vtec and logging a code.
How long after starting the car for the first time does the light come on/VTEC turn off, and then how long after you re-cycle the ignition does the light return??