Hm… I think the main thing would be to determine whether it’s the network or the server that’s failing, at this point. (It could plausibly be either one!)
Here’s something I would try:
$ fly ssh console -a db-app-name
# su postgres
% df -h /tmp
% pg_dump -p 5433 -d db_name | gzip > /tmp/d.gz # 5433, not the usual 5432.
The 3.5GB mentioned at the top is large for this context, so if df doesn’t show that much space available (Avail) then repeat from a temporary Machine within that same organization, instead.
(Or extend the PG Machine’s existing volume and dump there.)
If this works, then you can use SFTP or rsync to pull it down locally…