I had a problem w/ a basic GE model that would not advance. Timer was good, heater was good, thermostats were good.
I ended up putting a dab of alumilastic cement (like they use on icemakers) on the thermostat. Worked like a charm. I figure if the cement moves heat (or the lack thereof) in an icemaker, it'd do the same in a dishwasher.