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.