Use a graphite stick from an artist supply shop instead of powdered graphite on the rails. I only used powder on locomotives where access to the contacting surfaces is limited.
I had good success with graphite and still use it on occasion but I now much prefer No-Ox-Id A. Thoroughly clean the rails before application and then clean off the rails with Masonite type boards. This seems to work very well and requires only limited cleaning after (1.5 years into this experiment).
For locomotives I disassemble the trucks and clean all contacting surfaces until shiny. I then apply the No-Ox-Id and again clean off excess.
To clean the wheel pockets I chuck a round wood toothpick into a hobby drill. I dip the end of the toothpick into polishing rouge to help the process. I use electronics cleaner to remove the rouge when complete.
To clean wiping surfaces I use a fiberglass contact cleaner such as sold by Badger.
For the wheels themselves I chuck them lightly into my Dewalt drill and turn them at high speed with a light application of the fiberglass contact cleaner until shiny. I also use the fiberglass contact cleaner on the axle ends.
The combination of both track and engine cleaning leads to nearly completely stall free switching operations in N Scale. HO should only be much better.