Is there a way for gFTP to download a bunch of files/directories and then exit when it's completed?

Yes, the text port of gFTP supports this well. You can type:

gftp-text -d ftp://ftp.somesite.com/someplace

If someplace is a directory, it'll automatically download all of its subdirectories as well. If you want to transfer a file through ssh instead of ftp, just change the ftp:// to ssh://.