If Execute is called on an AsyncParallelTask object without adding any AsyncQuery objects then the Execute Action is never called.
This is most apparent in debugging, when you comment out the chained commands. Also, if you are adding queries through code and some/all are optional, then this becomes a serious problem unless you insert check code.
A check should be made in Execute(), and if there are no async queries then the action should be called immediately.
It's funny, when I wrote my own implementation of this feature (before switching to using DF) I had exactly the same bug in my own code :)