Targeting 8086-level of instructions was actually my first idea. It wasn't possible with gcc/clang, but Turbo C is freeware these days, so... ;) In case you're interested, see https://github.com/luke8086/nf/
[0] https://monotech.fwscart.com/NuXT_-_MicroATX_Turbo_XT_-_955M...
[1] https://monotech.fwscart.com/Nano_8088_-_Turbo_XT_SBC_Compac...
OWv2 is also available as a Linux binary so you could use it for crosscompiling in a similar way to GCC.
DOSBox can be easily installed on any system, you can save the entire C: in a git repo and it'll probably keep working in any number of years from now :)
Meanwhile, OWC doesn't have packages in popular Linux distros, only a custom binary installer, and on MacOS it doesn't even have that.