I read a study a few years back saying 2 to 3 seconds is the most you need to do to coat your lungs fully. Out of habit I inhale for 3 seconds, inhale fresh air for 3 seconds to push the smoke down and then slowly release for 3-5 seconds. Holding isn't so much to get high but rather its to enjoy the flavors. More recently I have a been getting into pipe tobacco and smoking out of a corn cob pipe. When I smoked my weed in the cob pipe it (mixed or pure) I don't inhale deeply. I keep the smoke in my mouth and release even slower. it's more wasteful this way but it's more relaxing and enjoyable. I can only do this because I grow my own. If I had to buy my weed I'd only use a bong and inhale for a few seconds.
the most important thing is to keep your sessions fun. If your coughing and getting headaches, find a different way.