Many pugs are so painful because nobody knows anybody else. They dont know each others capabilities or their playstyles. This usually leads to pugs that take incredibly long. Much of the time, pugs also dont bother getting onto vent together. This can lead to severe mis-communication which can in turn lead to wipes. Now, a few ideas that can help any pug group.
1) Use vent. It is much easier to just say something than it is the type something out. By the time you type it, it may be too late. When you are all on vent you can say something as simple as "Mana". This lets the tank stop pulling mobs and let you get your mana back.
2) If you are a tank, chain pull and dont ask for a bunch of CC unless it is absolutely needed. Tanking everything gives everyone that much more confidence, makes the run shorter, and keeps everyone on their toes. Waiting a long time between trash pulls can lead to complacency and wipes.
3) If you are a healer, bring your own tank, tanks bring your own healer. With a good tank and healer, you can easily get through any 5 man instance. DPS are important, but losing one usually doesnt lead to a wipe.
I think that it is very important to keep a run flowing. Alot of afks and such just add to the length of the instance. People get bored and start doing stupid things. If someone is doing something that sucks, teach them the right way. Pugs are as good as you make them.