If there is an electrical path between the AC motor and the microcontroller, even if only a single ground, I could see possible problems, especially if you are driving the motor with a light dimmer or something like that.
I would watch the power lines to the memory. If you don't have a 'scope, try a capacitor and headphones. If the motor comes on during a write, that could cause problems. A simple ferrite bead
on an interconnecting wire, a ferrite flat on a ribbon, could make a difference. If there are inputs to the system, digital or analog, seriously consider making these inputs (and signals) differential. I found this in a PID servo motor controller system with encoder feedback.
Since the wires to the motor were in parallel with lightly loaded digital (encoder) lines, the lines had to be differential to shed the induced noise from the signals which drove the motor.
It's safe to treat the flash device as infallible with regard to cosmic rays. I take it that you have observed this failure more than once.
I can't preclude bad software or something about the setup. Say some interupt occurs every 70 mseconds.. and should the controller be performing a write when the interrupt occurs, some flash controller timing condition is violated and the write operation fails, should any signals arrive late.
The circuitry perhaps could benefit from having a ground plane close by, if not within the board itself.
This serves in a sense to anchor electric fields locally
reducing interaction with more distant sources.
Putting a ferrite bead on the fan power line might be worth a try.
Though it's a tough call, I place my 50 cents on 'scat in the power rails', an occasional spike or heavily impressed 60-cycle voltage in the ground.
It may be possible to misconfigure a wake-up timer to run continuously.
Leprechauns?