A no cost solution would be to setup a Linux server in your home instead of option 3. Then you can use ssh to connect to it and try that out, maybe figure out a secure VPN where you can SSH in remotely if traveling or working from a coffee shop, etc. are in the list of requirements.
My understanding is Surface Linux is mostly the project built around developing kernel patches to be upstreamed, so the specific Kernel is more focused around external patches. Here’s their comment on this from their GitHub [0]:
We aim to send all the changes we make here upstream, but this may take time. This kernel allows us to ship new features faster, as we do not have to adhere to the upstream release schedule (and, for better or worse, code standards). We also rely on it to test and prototype patches before sending them upstream, which is crucial because we maintainers cannot test on all Surface devices (which also means we may break things along the way).
So should you install this custom kernel and the associated packages? It depends: We generally recommend you try your standard distribution kernel first. If that works well for you, great! But if you're missing any features or experiencing issues, take a look at our feature matrix and give our kernel and packages a try. If your device is not listed as supported yet, feel free to open an issue.
Everything is a no-cost solution if you ignore the costs. Which in this case would be the cost of a pc, the time to set it up and electricity to run it.