Hi,
I've used this chance to explore the source code and it's seems that reporting progress is the "responsibility" of the backend. The S3 or Dropbox backends, for example, report progress but some (most?) don't. You haven't mentioned the version of duplicity you are using but it should apply.
In any case, the progress tracker uses a 5s window to determine if the upload is stalled. So, if the backend does not report progress you will always get "stalled". For S3 you can "stall" if the upload rate is bellow 25KB/s and for Dropbox you may "stall" if the upload rate is bellow 3MB/s, I believe.
Cheers,