If SET_TEMPERATURE_FAN_TARGET is invoked while the cpu is saturated[1], soc_fan can get stuck at 0 rpm. Increasing kick_start_time seems to fix this.
[1] e.g. INPUT_SHAPER_CALIBRATION or BELTS_SHAPER_CALIBRATION
Instead of adding fanX_min to the set fan value, use the larger of either the set value or the fan minimum value. This prevents unexpectedly high fan when setting the fan to a relatively low value in the slicer. No changes were directly made to the Qmode settings.