Hi there yes it’s open loop when cold started and then goes to close loop it also goes to another status if you hold the revs on but can’t think what it was sorry.
This "another" status might be a clue to what is going on.
If everything is ok, it should cold start in Open Loop and within a minute or so (enough time for the O2 preheater to heat the O2) it should switch into Closed Loop, that's it.
There are perhaps less faults/reasons for it to pull back the fueling than perhaps try and increase it, so we might be looking at the ECU is doing it on purpose.
The ECU might be pulling the fueling back to protect the Cat, which is why you are getting a minus trim due to it having a problem working out the correct fuel/air ratio.
There are a few things that the ECU reads to work out the fueling, anything that effects these readings will screw the fuel air ratio up.
If we presume this "another" fuel status is caused by a slow O2 switch, you need to consider why that would be.
An exhaust leak could be a reason, if the it can't read the gas properly it might not switch properly.
As we see on the plug, if it's pulling the fueling back, it's leaning out so the engine so the engine would produce less soot, plus we've only seen 8 inches or so of the exhaust so it's hard to tell from here.
There are other reasons which could cause this "another" fuel status, like the O2 sensor just isn't up to it anymore.
I am not saying that is it for certain, but perhaps if we can find out what the "another" fuel status is, we might be a step closer.
A few years ago I had something similar with our old 169.
It idled badly, stuttered and was down on power.
There wasn't a hard code stored but I kept getting a pending code related to the O2.
I eventaully noticed the fuel status wouldn't switch to Closed Loop anytime after start up, it just tripped to Open Loop System Fault and I suspected the O2.
As both pre and post Cat sensors are the same I swapped them over and it started running normal again.