1 e 2 são fáceis - quase qualquer empresa de hospedagem (godaddy etc.) terá todo o prazer em vender o armazenamento que desejar e permitir que você transfira os arquivos FTP para ele, além de poder gerenciar as contas de usuário e privilégios.
3 - bem, alguns têm isso embutido em sua própria UI, mas eu suspeito que você queira incorporar algo em seu próprio código, caso em que há muitos pedaços de código FTP da GUI que você pode roubar com base no seu ambiente de desenvolvimento. Como alternativa, há vários clientes FTP da GUI específicos do SO sobre se uma CLI assusta você ou seus clientes.
4 - FTP é um protocolo ponto-a-ponto, não é um número P2P como bittorrent, então será tão rápido quanto o link mais lento entre você / você-cliente e a empresa de hospedagem - quase certamente o o ponto de aperto não estará no fim.