Why are you worried about short circuits on the FETs ? It is not normally an issue.
Short-circuiting can happen to someone who will connections to the fans, because they will not be permanently connected. Therefore, I would make sure that even when nothing short circuit burned.
Your code needs a startup sequence, and a range with a minimum value that guarantees spinning fans.
Show us your code.
Until now, PWM output steered manually using this code:
int R = 200;
byte value = map (R, 0, 1023, 0, 255);
analogWrite (9, value);
A value of 200 is an example ...
How do I know what the value may be the maximum, it will add security.
I wish it worked that way, that I set myself a specific voltage in uC and this value is specified for the load. This is important, that I associate with the speed voltage with generated wind.
Are your fans BLDC fans?
They may not like PWM as their supply because their speed is regulated by a built in switching system, speed is regulated by the system frequency not by the supply voltage.
That is why they have 4 wire fans, the 3rdwire is tacho out and the 4th is speed in.
The fans will change speed with load from the air flow, all you can do with 2wire fans is keep their supply voltage constant.
Lowering supply voltage will lower speed but also make the speed unstable.
I have a 2-wire fans and can the control voltage.