Pepe,
la descarga es "asíncrona", lo que significa que en realidad estás lanzando el proceso de descarga en un segundo hilo... y ya terminará cuando sea

Lo que tienes que hacer es asignar el evento OnDisconnect. Cuando se dispare ese evento significará que, o bien ya has recibido el archivo, o que se ha producido algún error. Lógicamente, al ser completamente asíncrona, te aconsejo que crees el objeto en algún formulario que no se vaya a destruir mientras dure la descarga (p.ej. el formulario principal). Si lo pones en algún formulario que se destruye antes de terminar la descarga, ésta se interrumpirá o incluso podría continuar descargando pero no podrías llegar a obtener el resultado nunca.