Webdav upload fast but hangs at 99% until it eventually finishes

This is normal behavior and has NOTHING to do with nextcloud. Your webdav client (windoze) is doing that. What its doing is sending the file to a local cache, which happens really fast and shows fast transfer progress. It then sits there for a while when it synchronizes the cache to webdav (I.e., it does the ACTUAL upload).

So either pick a better webdav client, or live with it.