The non-standard port is of trivial value, but it's practically zero cost- that's why it's used.
Port knocking doesn't have that benefit- you're establishing another secret that has to be maintained and accessed- but unlike key based auth or passwords- that secret is insecure in transit and unwieldy to use.
If you want to add another layer and manage another secret- why not just add another layer of the lower-friction and more secure methods we already use to establish secret-based auth?
Which comes all the way around to: a VPN sounds like a better option in every respect. More secure, universally supported.
I think the main reason you'd use port knocking is because it's fun and cool.
Sure but I hope the service you're opening up with the knock is actually secure like ssh.
The idea is just that you cant portscan to find something to attack. Its basically the same reasoning behind using non standard ports, but takes it a bit further.