The base64 encoding adds about 30% overhead. It's not ideal but it was a limitation of bash. Passing raw binary does not work in bash (or I couldn't get it to work).
It's not really a latency saver but it definitely reduces load on the network.
Turns out bash totally can pipe raw binary you just need to appropriately wrap the blob with the correct command.
By the time I had the working pipe I was in feature building mode.