After I do Ftp.Download(), the method does not return until it is complete. How do I do Ftp.Abort()?
You simply need to use Ftp.Abort method. It is thread safe. You can use it from any thread.