Instead of having each task executor reproduce the same
code for 'wait_for_any' we can just have the base task
implementation provide the function that everyone is
replicating instead; making common code common and save
the headache caused by the same code being in multiple
places (which is bad for multiple reasons).
Change-Id: Icea4b7e3df605ab11b17c248d05acb3f9c02a1ca