I am not sure streaming data inactivity cease is connected to general API inactivity in any way, as in my case, I keep recCurrentTime requesting as a beacon every second, also difference in local/TWS time works for me as an API disconnect monitor sensor.
So my loss of some streams is of some other nature, but occurrence is stable in about 10% of maintained streams, different 10% each time.?
And no apparent connection to any of the events, looks like IB just "forgets" and drops some of the active subscriptions on ETH session start at 4am EST.