A nofail mount that doesn’t come up leaves the mountpoint as a plain directory on the underlying disk. Apps that write there silently fill the wrong disk — in my case, the root SSD instead of the external HDD.

With the disk unmounted, mark the base directory immutable:

sudo umount /media/external
sudo chattr +i /media/external
lsattr -d /media/external      # ----i---------e-------

Now any write there fails immediately with EPERM, loud and clear. Mounting over an immutable directory works normally: the flag lives on the underlying inode, hidden while mounted, and reappears on umount.

The +i must be applied with the disk unmounted — mounted, you’d be marking the disk’s inode, not the mountpoint’s.