How long did you mash for and at what temp? As for letting the sparge soak for any length of time, that is really a choice for the brewer. I generally vorlof until clear, drain the first runnings, dump in half the sparge water, stir well, vorlof until clear, drain the tun, dump in the rest of the sparge water, vorlof and drain. I used to let the sparge soak for 10-15 minutes, but stopped doing so to save time. My beers have not suffered.
If you are confindent in your mash/sparge technique then i would look at grain crush first. On your next batch try running the grains through the mill at your LHBS twice and see if that make a difference.
I am a big fan of only changing/testing one part of my process at a time to determine the cause of an issue.