more accurate upload progress, auto-retry if stale for 2 min