Commercial ceiling fan regulators have been extremely unreliable. While the older ones used triacs, the newer ones merely use a combo of capacitors to divide the voltage being supplied to the motor. If the capacitors are not of excellent quality they will fail resulting in poor speed control. This I have observed happening, but never got around to analysing the capacitor failure mode.
In the case of triac speed controllers most use a 600v Peak Inverse Voltage (PIV) rated triac. PIV is the voltage that the triac can withstand without failure. The mains voltage is 325 Vp. Given that an inductive load is being driven, one should expect a substantially higher momentary back EMF, especially if the firing angle of the trigger pulse is 90^o or 225^o. Consequently a higher rated triac would prove to be more reliable. Also the triacs used seem to be of dubious origin.
Additionally a major irritant is the fan running at a speed set appropriately as per ones comfort and depending on the ambient temperature. As the temperature drops and as our body cools down in the night one often needs to wake up and turn down the speed. this is irritating even during daytime and thoroughly disgusting in the night.
I have long been thinking of making a microcontroller based fan controller. Adding a temperature sensor would be a great boon. I had made a regular triac controller in my old home that worked for 14 odd years, until we left that house.
After the umpteenth failed controller I finally got around to designing one.