The high level observations is that a device running on the NRF9160, streaming data over TCP using the offloaded TCP does not work as well as a native TCP socket on Zephyr using an separate LTE-M modem.
After analyzing the data stream it looks like the offloaded TCP stack does not activate / implement the Nagle algorithm (https://en.wikipedia.org/wiki/Nagle%27s_algorithm). Is there a was to configure this? This prevents that stack from sending a lot of small packets and will combine them.
Secondly if a packet is lost, it requires a timeout set at about 2 seconds to occur before the retransmission takes place and the stream to continue. Is there no fast-retransmit implemented (https://en.wikipedia.org/wiki/TCP_congestion_control#Fast_retransmit)? Or is the send window too small to trigger the fast retransmit behavior? Fast retransmit would allow much faster recovery of a lost packet and much less disruption of the data flow.
Upon request, wireshark traces are available.