I notice that the fast connection is only closed when the Connection is _paused_. (not when it's closed).

Yeah, that doesn't look right. It certainly looks like the fast connection wants closing in Close(). Maybe your connect failures are where a previous session has left the socket open. Although in theory you shouldn't be writing FIDs to the player without rebuilding the database (which includes pausing the connection).

Does Jupiter support fast connections?

Yes.

If an upload stops in the middle, do I need to somehow reinitialize the fast connection, or by just sending a new TcpFastHeader, will it reinitialize automagically?

If a fast-channel operation stalls for 10s or more, the player will close the socket. Subsequently you should be able to establish a new connection.

Peter