I'm going to 2nd the throttle body cleaning. My 03 Camry had a dirty throttle body. The symptoms were different, but I could see a dirty throttle body causing that hunt. Just imagine, there's gunk built up on the body or the butterfly valve edges, or likely both. That gunk reduces the amount of air that is going to be able to pass by for idle purpose. That lack of air would tend to slow the engine. The ECU is programmed to hold a certain rpm, so the ECU would add throttle to counter the engine slowing. Adding throttle could cause a small rev. Then the ECU lets off the throttle because it revved past its set point. The lack of air around the butterfly starts the cycle again. It would totally depend on the ECU programming (idle gain) as to how this battle manifests.
In the case of my Camry, the rpm dropped below and the ECU (gain) was low enough it just stopped it from dropping even lower. That lower rpm must have put the engine at a speed that it didn't balance well in conjunction with the firing rate ... very complex, so that's just a guess. But the engine had more vibration than it should've. I looked at the throttle body and it was very gunked up. So I pulled it out and cleaned up real good with cleaner and a tooth brush. Put it back in and OH WHAT A DIFFERENCE. Smooth idle, no vibration and just off idle acceleration smoothed out real nice too.
I never ever ever put any kind of deposit cleaner in any vehicle tanks. Because they do just what they advertise. The clean gunk. Very effective stuff too. However they start cleaning in the tank, and that crap once loosened gets sent on down the line. To the injectors.
If I want/need injectors cleaned, they get removed and cleaned manually. Guys that run shops that clean fuel injectors think fuel injector cleaner that is added to the tank is the GREATEST thing ever. They get a lot of business due to that stuff.
__________________________________________
View my fuel log 2020 Mirage ES 1.2 manual: 42.4 mpg (US) ... 18.0 km/L ... 5.5 L/100 km ... 51.0 mpg (Imp)