if you open your agent-xxxxxx-xxxxxx.log when updating setup file, scroll down to the end, you will see something like
13:00:15.3120 Request Issued: GET /agent
13:00:15.3122 Response: 200
"state" : 1003.000000,
"progress" : 0.999999,
and when the progress reachs 1.00000, it finishes. The Agent.exe will keep writing the log, so you can quit and re-open again to see if it is progressing. I have noticed one at 60% and the other at 90%. However, it took a very long time for me to finish about 30 mins to 1 hour, and when it finishes, I get error when choosing installation path, "invalid installation option".
In the past 12 hours, I just kept deleting all files like battle.net folder and setup.exe, and re-download client from blizzard.net, nothing changed.
Suddenly I turned off my Anti-Virus software to stop monitoring, and delete old files, re-download and install again, updating setup files finished almost instantly and no more error now. my downloading speed is now at 4.00MB/S.
I am a technician and pretty sure I have no firewall, even windows firewall is off. My anti-virus has firewall but it is off, i have never used because my computer is behind a router and it is home network.
So, turning off firewall isn't enough, you have to turn off your anti-virus software as well.