Nice solution. You can got a step further if you have the need - your eavesdropper or malicious observer problem can be addressed by launching the network connections from inside the process space of your app, e.g. for golang:
https://github.com/openziti/sdk-golang
Similarly, this eliminates the IP address dependencies.
Similarly, this eliminates the IP address dependencies.
Sample (Java in this case - see GitHub above for various language options): https://blogs.oracle.com/javamagazine/post/java-zero-trust-o...