Thanks guys, after searching for some solutions to communicate with the SMC, I came across this Github project : https://github.com/beltex/libsmc
The library allows me to communicate with the SMC by wrapping around utility functions that interact with AppleSMC.kext. However, Apple last year announced that it would start deprecating kernel extensions gradually in favor of system extensions.
So, I am thinking I can create a fork that uses system extensions instead to verify the POC. That would allow me to create a MVP service that can be used to manually set fan speeds when I feel like I need to override system default. To make life easier I can have a menu bar status icon for quickly enabling and disabling the override and set the fan speed.
That way the default fan curve can stay as is. But, I also don't end up with a system that's got hard to repair electronics staying at high temperatures for extended periods.