Fair enough, then and we're in agreement regarding the reliability of the Windows (10) operating system.
The z-offset configuration on the average 3D printer seems to be something which is done whenever your replace the bed (which rarely happens). For CNC work, you routinely change the z-offset to match the stock that you've now placed on the bed.
In a similar fashion, the default X/Y home position on a 3D printer is "set in stone", if you will. It's defined by the bed dimension itself. In CNC, the stock itself defines the home position for X/Y. So I'm not sure what's necessary for Grbl. Presumably it uses the concept of two or three offsets from the stock home position to the underlying bed's home position. Or perhaps you have to calibration every job start. I couldn't tell you but it appears to be necessary for success.
Marlin (the firmware) has support for CNC toolpaths throughout.
From this video/instructable, the guy appears to have succeeded (minus OctoPrint) to do what you're trying for.
Reviewing the plugin's code, it feels a little light to me. The entire project weighs in at 12 commits in total. May 2017 and a little work in 2018. The author appears to be working the latest issue, so that's good.
It may be worth the effort.