Yes, both are NEPacketTunnelProvider subclasses. But sendProviderMessage is not suitable in our situation, because I have to communicate with it even before I want to start a connection .
Regarding com.apple.security.temporary-exception.mach-lookup.global-name - app works perfectly wthout it. I still have added it just for tests and nothing changed. The problem arises on some machines all the time you open the app, and on other machines only after reboot. Looks like on Catalina we get this error after each computer restart, on Big Sur and Monterey you have to restart 2-3 times before you get Couldn’t communicate with a helper application on app start. We are doing this check on app start (applicationDidFinishLaunching), maybe that's too early?