Think about this. One important function of any mobo fan header is to monitor the speed of its fan for FAILURE - that is, no fan speed signal coming back, or maybe a signal lower than some threshold you can adjust in BIOS Setup. IF the header detects such a failure, its first action is to change the signals to that fan to go to full speed so it WILL re-start reliably. IF that still does NOT produce a fan speed signal coming back, then it puts a warning message on your screen so you know about the failure. BUT if the fan does re-start, then the signal to it is returned to where it was before the event.
I suspect you have set your fan's minimum speed too slow so that it actually does stall. When that happens, it is re-started successfully, then returned to its previous state which results in stalling again. Repeat. So, open your case and watch. Does the problem fan actually stall, then speed up to re-start, then slow down? If so, you need to go into BIOS Setup for that header and increase the minimum speed setting for low temperatures - you say it is set now to 20%. An increase will prevent frequent stalling.
Another possibility: IF you actually can specify a minimum speed limit on the header for the fan(s) with this problem that is interpreted as a failure, MAYBE that limit is set too high. When you watch the fan, does it NOT stall, just speed up for a few seconds then slow down again? It MAY be that the limit it set too high so that a stable low speed that does not actually cause the fan to stall is mis-interpreted as a failure. In that case IF you can specify that alarm low limit, change it.