Be SURE to checkout the DevForce AsyncParallelTask class which helps you stack up a bunch of tasks (such as queries) and run them together. You supply a final callback. Let it do the bookkeeping.
The AsyncSerialTask is great for chaining a sequence of tasks, each of which depends upon the successful completion of the prior task.