Resolution: Not A Bug
Create a simple maven project, configure it to deploy to nexus 3. Run the build using Maven 3.5.0 or higher.
There will be a very long pause (~ 5 seconds) in each PUT request.
Run the same build using Maven 3.3.9 or earlier. There is no pause at all.
The difference is that Maven 3.5.x is sending an "Expect: continue-100" header.
This is also reproducible using curl, if the "Expect: continue-100" header is present uploads are very slow.
I tried this with both Nexus 3.7.1 and 3.8.0, and I see the same result.