Hey,
Je ne suis pas sûr d'avoir tout à fait compris ton problème (notamment avec l'histoire de ton middleware qui lance une tâche, j'suis curieux de connaître le but du truc).
Mais en attendant plus d'info, jette un oeil du côté de grunt-concurrent, qui permet de lancer plusieurs tâches en parallèle (ce que je fais généralement avec un watch et un connect, ou un watch et un supervisor, par exemple).