La differenza tra StartNew e FromAsync è che il primo esegue il codice indicato e con esso termina il task, impiegando il thread assegnatogli.
Con il FromAsync sfrutti il pattern begin/end. Senza usare il parallelfx, quando usi begin/end rilasci il thread chiamante e deleghi all'implementazione di lavorare in asincrono, in genere utilizzando io thread del sistema operativo, in genere migliore e più leggero rispetto ad impegnare un thread del processo corrente.
Quindi rispondendo alla tua domanda, va bene quello che hai fatto, anche se la soluzione ottiminare sarebbe usare il fromasync, che comunque non cambia come poi aspetti il termine del task e leggi l'xml. Usando questa tecnica comunque non troverai una differenza tangibile, se non se il sito è ad alto traffico.
Ricapitolando, lascia così
