Loco is running fine, then suddenly slows down, stops for a few moments, then starts up again to its original speed.
This happens repeatedly and randomly (not at the same locations).
Wheels, track are clean, doesn't seem to be a problem with other locos.
Running HO using the Zephyr with Digitrax decoders.
You did the right thing to make sure that the track and wheels are clean; that is one of the most common sources of problems with model trains, DCC or otherwise.
What is probably happening is that the locomotive has been selected by two throttles.
You are operating the locomotive with one throttle while it is also selected on another throttle. In this case, the other throttle is probably set to speed 0, while yours is set to whatever speed you have selected.
As a system reliability feature, Digitrax command stations periodically poll all throttles, one at a time, to verify each throttle's individual settings.
This is because some operators do not have track and wheels as clean as you do.
It polls each throttle and resends the speed command to the locomotive, even if the throttle settings are the same.
It then continues on to the other throttles and eventually reaches the throttle which is also controlling your locomotive and sends a speed 0 command, stopping the locomotive.
It eventually gets back to you again and again sends the speed command that you want.
So, you get the locomotive cha-cha.
When you make a change on the throttle by turning a knob or pushing a button, this change is immediately sent to the command station.
Otherwise, the system "polls" each throttle periodically to see if anything has changed.
Sending commands from your throttle slows down the poll timing, which would explain the seemingly random nature of this problem.
Additional operators will lengthen the time between system polls because they, too, are sending speed command changes.
Once the system settles down, the polling process begins again and you know what then happens.
The solution is to find the other throttle which has the loco selected and release it. It's good practice to make sure that you release a locomotive from a throttle when you are finished.