All good advice. Thanks everyone.
At this point it would have been cheaper for me to buy a new lawnmower... but then I would miss all this fun
After completely eliminating all other possibilities:
1. The carb has been replaced... as well as the gas line and the fuel pump. I suspect regardless of everything else the carb had issues because it runs MUCH better at idle now.
2. Replaced both head gaskets and adjusted the valves. I do need to verify that the heads are not warped. Thanks for the glass tip.
3. Did a leakdown test after replacing the head gaskets and saw about 6% loss. Seems good to me.
After all this the mower runs poorly at full throttle. Hunts and pops out the breather valve. White smoke in the crank case. Runs even worse now under load and often stalls out. Must be blow-by via the piston(s).
Remember... I originally replaced a piston and both connecting rods.
* The piston I bought is a kit with the rings: part #793647
* I did not hone the cylinder walls... but I have the tool now.
* I did not take any great care in staggering the ring gaps previously. In fact, I have re-opened the crankcase and now see that while they were not 100% aligned... the gaps were fairly close (which is, I assume not great).
Plan now is to hone the cylinder walls, replace the rings, verify the heads are not warped... and hope for the best.
Question: The new piston is certainly not exactly the same as the old one. The rings are different as well. The part I am confused by is if I buy JUST the piston rings they have 2 versions. Before 06082400 and after 06082300. My ENGINE code date starts with 05 so to replace the old piston rings on the old piston I'm going with part #499604. Question is... what rings do I use for the NEW piston? Are the rings specific to the ENGINE or the PISTON? The piston is new (793647)... and the rings appear very different to me whe compared to the old rings... particularly the oil ring.