Sinceramente NO, non ho capito come fai a passare alla pagina successiva. Sicuramente non dopo aver verificato l'argomento e.Valid perchè se è falso dai un messaggio di errore, se è vero non fai niente!
Oppure se termina wizardPage3_PageValidating senza annullare va automaticamente alla pagina successiva??

La riga :

codice:
 e.Valid = SaveFiles();
non mi sembra corretta perchè sicuramente non aspetta il termine del Thread chiamato.
Se la directory esiste fa partire il Thread e ritorna True ma non aspetta il termine del Thread, se non esiste ritorna False.