Ext4 does not have CoW.
That's the only true part of this comment.
As for everything else:
Ext4 uses journaling to ensure consistency.
btrfs' CoW makes it resistant to that issue by its nature; writes go elsewhere anyways, so you can delay the "commit" until everything is truly written and only then update the metadata (using a similar scheme again).
Please read https://en.wikipedia.org/wiki/Journaling_file_system.
At around 70%, fragmentation issues start becoming apparent with ZFS IIRC. Though they shouldn't be this apparent.