Why does large file transfers stop at 99% for a few minutes?

Caching.

(Probably)

When Windows writes to disk it caches the writes to the disk. It shouldn't be doing this for flash or external USB drives, but it's the only real explanation that fits.

The copy file dialogue is showing the speed to copy files at the cache and not the disk itself and is then waiting at the end for all the data to be written out. The copy program can presumably see that there is data in the cache waiting to be written out but not how much.

There is a way to disable the write-cache for drives which may well stop this behaviour.

There is a quick guide to disabling the cache on the disk at Seven Forums, but I'm not at my computer to summarise it properly here. Basically you want to disable the disk cache only on removable or external devices, for performance you want to leave it enabled on internal devices.

You should be able to get to the same properties pages shown in the tutorial I linked by right-clicking the disk in an Explorer window, going down to properties, then selecting the Hardware tab that shows at the top of the window.

It should be a bit like this image from The Windows Club but you should have an option for quick removal on USB devices. (I'll replace this when I am able to later)

enter image description here