Personally I would strongly recommend learning how to do all of this. And then abandoning it for tailscale or something similar once you know what they're doing behind the scenes. It's incredibly useful knowledge but it's also nice to have so much of the process automated and best practices like key rotation done for you. Plus unless your network is hugely crazy or enterprise, you can manage for the really great price of $0.
And if you really really want to self host (which I understand) there's headscale for a lot of the features.
Well when you realize we treat school as glorified babysitting and not just education, part of the reason becomes more obvious. Parents work 40 hours so we need kids in school roughly that length of time. Especially when both parents have to work to afford to live.
We need to uplift a lot about the entire system for it to work.