Currently, the MSTraceList.pack(flush_data=False) pattern of continuously generating records from an infinite source of data will leave some data in the buffers for any given channel for which data stops being added (until a final flush_data=True).
Functionality should be added to flush individual data channel buffers that have been idle for some period of time. Perhaps controlled through a flush_when_idle parameter that specifies the number of seconds a channel has been idle to trigger flushing.