My understanding is that no filing system can be totally free from corruption if the power is just cut. Some are better than others about minimising the risk.
Generally, writes are so quick it is rarely an issue and filing systems have improved greatly over the years such that, for most, you won't ever see it. But it doesn't mean it doesn't happen. I've seen this on both Windows and Linux over the years where the corruption was hidden until you ran a full filing system check.
It isn't just power loss that can cause this of course, but also an OS crash. Rather more common on Windows than Linux though. 
I suspect, but don't know for sure, that is as much to do with the write speeds than anything else.
Again though, the point is that it is always possible to get corruption - even cosmic rays cause eventual storage degradation.
Using a journaling filing system such as Windows NTFS or Linux Ext4 reduces risk in the same way that journaling DBMS's do. Having small, fast journal writes as a backup.
Keeping Node-RED's context variables small would also help. But remember that you are converting what may be a JavaScript object into a flat text file every time that Node-RED writes to disk. If you have a lot of fast updating and potentially large data, it is only written every 30 sec by default - that could be a lot of writes. Coupled with a slow write speed, you are really starting to push the boundaries.
Deconstructing the data and outputting to MQTT results in a more robust set of data since any sudden system loss is unlikely to cause physical corruption - though, of course, it might result in somewhat inconsistent data. Even so, Node-RED would be able to come back up.
The issue here is, if you can't make the platform more reliable, and you don't want to change your tooling, you have to change your flows to reduce the risk of data corruption. The exact "best" way is going to depend on details we don't know. MQTT would be one possibility. Use of a DB output might be another - you don't have to use context storage after all. Reworking the data would certainly be something I'd want to look at as well.