Whatever Nvidia is using will need to figure out how to deal with dropped packets (or tcp jitter) and adapt to that on its own. Afaik, shield is locked down so you can’t tweak the kernel and/or increase things like net.core.rmem* or wmem* (or however this thing works in Windows).
For your bandwidth testing, you can try with TCP and that will roughly tell you how much bandwidth shield can handle as an upper bound. When it’s streaming it’s using the CPU for other things, but knowing how much it can handle even if TCP it’s a good start.
It might also be possible that different versions of iperf3 behave differently when it comes to setting buffer sizes/socket options or detecting how much/how often to push stuff through, 3.1.3 on your screenshots show is pretty old (cca 2016), you should try to find a newer build, or if you can’t get it for windows maybe there’s a way you can run it with wsl2 or you could try Ubuntu in hyper-v and see if shield can stream to your VM without packet loss (could be a Windows UDP receive buffer size that’s broken).
Additionally, you’ll be streaming video to the shield, not from, these two things can load the CPU differently.