I had the same problem with an X11SAT-F board without IPMI. My workstation has 4 slow 140mm PWM case fans (Bequiet Silent Wings 3) with the CPU being cooled by a Shadow Rock Slim (also Bequiet). Obviously the CPU should only be cooled as needed, with minimal revs for all fans during idle. In addition I have an LTO tape drive in there, which runs quite hot when in use, hence the 4 PWM case fans. Initially I thought I could just poll the drive periodically for its internal temperature and adjust SuperIO chip PWM speed values once a minute to keep it cool. When nothing is going on at night or during the day, the machine should be whisper quiet. Yeah, so I thought.
Turns out SMM interrupt code will overwrite any settings you may make on the SuperIO chip when the SMM code detects a new condition like hotter or colder temperatures. Which is like every couple of seconds or tens of seconds at most. For IPMI boards the job of adjustment could be delegated to the Aspeed controller entirely, or the controller does only switch different fan profiles for SMM code to execute. Which is why I opted to get a board without it in the first place. I see little need for IPMI with Intel AMT manageability (KVM) just to keep an extra 2-3 watts chip running, that should prove even more difficult to persuade what to do about the fans. I guess you could use ipmitool to at least read out voltages and temperatures.
Of course I did contact Supermicro but the product managers were unable or unwilling to let me dive deeper into the boards internals than what the BIOS and official hardware APIs allow. As for the SuperIO chip, you might want to check out my guide here on STH:
Supermicro X11SAT working and complete lm-sensors config
My final solution though was buying an Aquaero 6 LT (without display, with extras RTC and also the metal cooler, around 120 EUR) which has 4 programmable PWM outputs. I let the board only control the CPU fan, due to PECI being the fastest and most precise actionable interface concerning CPU temperature. Everything else is controlled by the Aquaero, which is, as the name suggests, originally a board to control water cooling setups. Once programmed, it does not need the USB connection btw. Linux tools are lacking very much, so I installed a Windows Qemu guest and made its USB device available to the guest.
Here is the Aquaero 6 PCB which is usually mounted in a 5.25" drive bay behind a display (non-LT variants, I mounted it at the bottom of the case on a 4mm PCB plate):
And here is the software UI running on Windows on a VM on Linux with USB passed through:
The Aquaero came with 4 out of 8 thermistors which I all installed. There are two control curves: One sensor on the LSI 2008 controller controls an internal PWM fan that blows directly towards the PCIe cards. If the card gets too hot (60degC is normal), the internal fan will be revved up, up to full speed. A different sensor is taped to the bottom of the LTO drive where much heat is dissipated and two top cover and one back side fan will rev up if temperatures rise here. At idle, the machine is silent, also owed to noise dampening of the NZXT H630. When the LTO is running, the fans are audible, but so is the screeching LTO drive.
All in all I am quite satisfied with the build.