What if we take "Waiting for" list out of the equation?
Here's something I've found useful, you may too.
I use paper to do GTD, more specifically a Moleskine.
With the "@waiting for" lists, I found myself copying the same task over and back to other context lists. Example, I phone Bill for info, get his answering machine, state what I'm looking for. Then I have to put that on my @waiting for list. Or do I?
I've taken to writing a "W" for waiting in the margin beside the task whatever list it appears on @calls, @Email, etc., noting the date I made contact, and placing a sticky tab on the bottom of the page. Each day, I check the tabs. I find this works very well because if I have called Bill, requested info, and he hasn't called me back, what's the action? Call Bill again. It's now covered by one action item on @calls, rather than on the @calls list, the @waiting for list, and a new entry on the @calls list.
Hope this helps someone.