scp does detect whether it's got a controlling tty. If you run it as a foreground process it will show a progress bar, but if you background it, the progress bar disappears, so there are some internal checks going on. I would do as @peterph says and start the transfer in either a
screen session. I'm not sure of the implications of using
nohup, but just keep a controlling terminal active.
As the file is that big, if it's not compressed, I'd also add compression to the transfer with
If it's a directory, and you've been retrying the same command quite often, you should probably use rsync, which first checks if files differ (with md5 checksums) before transferring them. You can also resume big file transfers with the
rsync -avz --partial --progress --rsh=ssh Files-from-Server-A [...] user@B:/tmp/