Hello Simon!

Simon said:
Does this make sense? Have I understood your problem correctly?
No you did not. According to my observations:

USB UART0 is connected directly to nRF9160 UART0.
USB UART1 is connected to nRF52840, I can make it print a counter in a loop, e.g. "*** UART test *** xxx xxx\r\n"; or I can read NMEA strings from nRF9160 UART1 and send them to USB UART1.
When the issue happens, either one of both of the USB UARTs could be affected.
Meanwhile NMEA data is also sent to a BLE client and is valid, which means that the communication between nRF9160 and nRF52840 is connect, hence no need to perform a reset.
I used the reset button and PROG/DEBUG switch to reset both CPUs. Despite of this, the data I see on the USB UARTs still contains many dropped bytes.
Eventually the USB UARTs stop sending any data, and the only think that helps is powering off the board.
Please use the attached boards and samples to test. You should be able to reproduce the issue within a few minutes. I already reproduced it on two boards.