100ms is very low for doing decent compression and decompression.
Network latency added by natting is microseconds.
Imagine I had a public IP - no natting involved. How would my video client tell my stateful firewall to allow a new incoming connection from the calling device?
The issue isn't the NAT itself, it's the inhibition of P2P connections (to a further extend, spontaneous queries for distributed routing technologies like seen in IPFS, but those are just preventing full decentralization).
Once you have to bounce the data through a hosted proxy, you're forcing no less than 10 ms on to the users (of course there are rare exceptions for users really close to your proxy).
Network latency added by natting is microseconds.
Imagine I had a public IP - no natting involved. How would my video client tell my stateful firewall to allow a new incoming connection from the calling device?