I re-ran the test with Tramp 2.4.3 and tramp-chunksize set to 1. It completes with no error. I don't suppose the log (212MB, 18MB when compressed) would be helpful with no error, so I'm not adding them to this message (but tell me if you need them).
To make sure this was no coincidence, I re-ran the test several times. It worked each time. It also worked with tramp-chunksize set to 2, 5,6... It failed with tramp-chunksize set to 10.
Weirdly enough, I got frequent (but not systematic) fails on tramp-chunksize set to 1,2 and 5 but *only when tramp-verbose was left unchanged* (to 3).
All the tests I have been doing until now were made using "emacs -Q". The problem only happens with large files (although contrary to what I said, the test file 1.bundle.js weighs 2MB, not 20).
It is true that I tend to lose my Tramp connection quite often and unexplicably. I also get asked for my password from time to time, when establishing the connection, even though it should (and does, like, 70% of the time) get it right from ~/.authinfo. During all the tests of this morning, it continually asked for the password (could it be that the file was locked ?).
I acknowledge that pscp works perfectly in this use case. However, in my real use case, I execute the copy-paste as root (from dired+), and to the best of my knowledge, pscp does not support multi-hops (I don't know why, but I wish it dit, it would be really useful).