Running tasks in parallel
The code as it stands doesn't read well. And your text is also slightly confusing. I do believe I would rework the code to something along these lines:


Initialize an array of tasks
Add each task to array, with necessary conditions if needed
Await execution of all tasks


This would make for your code to handle extra tasks better, it would clear up the confusion on which tasks actually gets executed, and finally all tasks can be executed in parallell however the compiler feels like doing that.