Iniciar várias tarefas em paralelo e esperar por elas no Windows?

Como executo algumas tarefas em paralelo no script em lote e espero por elas?

command1;

# command3, command4 and command5 should execute in sequence say task1
# command6, command7 and command8 should execute in sequence say task2
# both task1 and task2 should run independently

command3; command4; command5 | command6; command7; command8;

# should execute only after the above parallel tasks are completed

command9;

Como prova de conceito, tentei algo como, mas não está funcionando:

echo "Starting"
start /wait wait20.bat   
start /wait wait40.bat 
echo "Finishing"

wait20.bat parece:

echo "starting 20 seconds job"
timeout 20
echo "finishing 20 seconds job"

O que estou fazendo errado?

questionAnswers(2)

yourAnswerToTheQuestion