Actually, it sounds like you have burnt or carboned up valves. I would buy a head gasket, pull the head, clean everything, use some carb cleaner to clean the valves and make sure they're moving freely, and re-assemble. If it's running good when cold, and not using much oil, valves are the likely culprit, and VERY common in old Kohler engines. It's worth the $20 for a head gasket to give it a try. Otherwise, you're looking at several hundred dollars to bore and do a complete rebuild. Locally here, I use a NAPA shop where a guy is known for rebuilding Kohler engines. He charges $75 + Parts to bore out, install new piston, re-install crank and bearings, and install new valves. Typically, parts included, this ends up being about $200, +/- $50.
Another thing to check is the coil. If a coil is worn or incorrect, they can overheat and stop producing spark at the strength they should. It's another common problem when someone has swapped out a coil and use a non resistor coil where a resistor coil is needed. They all look the same, and people all think they are the same, so it's not a suprise to find the wrong one installed. An overheating coil will produce the exact kind of running that you are experiencing.
Just some thoughts, found out the hard way.