I gave up and just built a TWS plugin that reconnects itself. The web api plugin also works well, but has less functionality. My guess is that SET_RESTART reopens the socket but never requests the market data again.

Adam