@snhou answer helped me figuring out a bug in FTPHost, it always defaults to port 21:
    class ImplicitFTP_TLS(FTP_TLS):
        port = 990
        _sock = None
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.prot_p()
        ...
Then you can do:
    fhost = FTPHost(host, user, pw, session_factory=ImplicitFTP_TLS)