You want to make sure that the dishwasher is level and secure first of all. Then I would look into the door latch assy. Sounds to me that you are not making all the latch switches when closing normally. When you are slamming it, you are making the switches. The heating element runs through the neutral side of switches, therefor if the switch is broken or the latch is not making, no heating of the water. This results in a default or very long wash time. Check this out first....Catriver..post back.
Usually answered in minutes!