Xorg becomes totally unresponsive and I cannot switch to a VT, so I assume it's a global lock somewhere.
Watch the dirty cache data when this is happening, if you want to know for sure. Put a couple "sync;sync;sync"'s &&'ed on that cat, if you want to watch stimulating behaviour..
(More often than not, its the device. Linux is dealing with it fine.)
There is a long standing (CFQ-related) kernel issue causing system lockups in high I/O situations:
With blk-mq + nvme and later lightnvm that whole IO-scheduler mess will hopefully go away over the course of the next couple years (at least for personal computers).
Edit: never mind, Johnp_'s comment and bugzilla link is highly interesting.