I thread gli usi se vuoi che effettivamente qualcosa sia fatto in un processo parallelo o concorrente,
sono comunque ad un livello basso d'esecuzione.

Piuttosto che i thread generalmente conviene usare i Task, che ti definiscono solo che la risposta o l'esecuzione di un determinata azione verrà data in un futuro più o meno prossimo, il vantaggio dei Task è che vengono gestiti da un pool.

L'uso delle parole await/async è un metodo semplificato per gestire la tecnologia Task più vicina agli aspetti sequenziali dell'utente, i quali possono essere anche semplicemente in un contesto di sincronizzazione differente.

Pertanto nel tuo esempio conviene senza dubbio usare i Task con await/async, tenendo sempre in considerazione i limiti definiti dal pc client e quelli dati dal servizio web, prestando sempre molta attenzione agli aspetti critici della programmazione asincrona.