Mazdaspeed3 idle issue

I drive a 2010 mazdaspeed3(2.3l turbo). My vehicle has been idling a little rough for quite some time now, but as of recently(last month or so), the issue has progressively gotten worse. It started out with a very slight stumble that would occur very occasionally. About a month ago, I began hearing some quiet pops from my exhaust and the stumble was much more frequent(but not always there). Now the pops are quite a bit louder, and the stumble is still quite frequent. Sometimes it will idle fine around 750rpm(wich is normal rpm at idle) with no pops or stumbles. Sometimes it will idle at the same rpm, but stumble and pop. Other times it will idle at the same rpm, but the popping is louder and there is a constant miss/hard vibration. The vehicle also sometimes will idle at 1000rpm, sometimes randomly when at a stop, and always right after cold start. When idling at 1000rpm it almost always idles very rough with pops and a constant miss/hit feeling. The car does not miss when under load, and seems to drive rather well. The only thing not stock on the car is the solid motor mounts, and the live data on the vehicle all seems normal except for the stft being ~ -4.5 and the upstream 02 sensor reading very close to 0v. I believe these values suggest that it is running a little rich, but the rest of the sensors read close to what they should and my gas mileage has not suffered at all(if anything went up). I have checked the spark plugs, cleaned MAF sensor, visually checked for any vacuum leaks, and replaced the throttle boy(which includes tps and iac). I apologize for the lengthy post, but I have looked on many different forums and havent found an issue that closely matches what is going on in my sitution. I daily drive this vehicle and dont have any fluid leaks or other mysterious/related issues atm. Any advice on what I can and should test at home to help narrow down this issue would be greatly appreciated.

Additional note: There are no obd codes being thrown.

Does your scanner have a cylinder misfire counter?

It has a misfire monitor that reads OK. I assume this means that there is no missfire being detected. I have not had the scanner plugged in whent the car idles very bad(constant miss feeling), but when it only stumbles and pops, it read OK.

Another note: the fuel trim stays steady even when the idle stumbles?

It sounds like it is running too lean for some reason. The fuel trim is saying the computer is injecting less gasoline than it thinks is actually needed, consistent w/the idea the engine is running too lean. Faulty O2 sensor, exhaust system leak, faulty fuel injector(s), etc.