CGNAT = Carrier Grade Network Address Translation. It makes it practically impossible to open ports to the public internet and in some extreme instances make zerotier very unstable. Typically you only have CGNAT if your internet connection is 4G or fixed wireless.
OpenVPN is just a VPN protocol. Roughly comparable to wireguard. It has been the gold standard for VPN technology for the past decade or so. Wireguard by comparison is much newer, and lighter to run. This typically results in faster throughput from a computational standpoint and devices where power is limited (cell phones), uses much less power by leveraging modern CPU encryption methods.
If you have the option to port forward on your home internet connection, its possible to setup a VPN connecting in a straight shot from your home to your roaming device. If you can't port forward, you will need a main in the middle (the VPS) to establish and route the connections through.
Zerotier works off of a PTP style network and the free plan allows up to 50 devices when last I checked. I'm not sure on the availability of zerotier or wireguard on truenas as the last time I used TrueNAS was Scale 22.
It is a NAT, but created by an operator.
The operator does not give you a real IP address, but instead hides you behind his own NAT and gives you one private address.
I had literally just set this up on my truenas instance yesterday (even though I've been using ZeroTier for some time). The key thing to recognize is that truenas whipes out any modifications to its system after a reboot, hence the need for this script.