As this problem "progressed" in the speed the engine was running at, and you have covered everything except injectors and cat, and the injectors generally end up sending a code, look to the cat. To save money ( a reputable mecanic will not do this) CAREFULLY cut the cat out, front and back so as not to damage it. remember to disconnect the O2 sensor... slide and Clamp a modified piece of exhaust pipe in place. the modification is to hold the O2 sensor. remember you can not use any sealants on it. just drill a hole undersized enough to screw the sensor in place. then drive the vehicle. if this fixes the problem you know its the cat. You also should be able to see light through EVERY cell in the monolith of the cat when backlit with a flashlight. Some people have used steam or acetone or hot water poured through the converter to clean built up carbon out of it. I've even heard of people putting it in the BBQ grill after filling it with water and firing up the grill to steam out the carbon. some have claimed success others not, but a replacement cat goes for between 150-250 depending on source and your location (CA substantially higher)...