i submit this for the sake of bringing a potentially new angle to this problem in the hopes for it to be resolved.
i have used TWS extensively with the demo account in order to create my own trading system. and, as the problem is initially described... to me, it MAY NOT be related to the 50 orders per second limitation. maybe it is, but maybe it's not.
in the process of working with TWS i discovered a rather disturbing situation which i reported to IB but never received a response. in this particular instance i was testing buys and sells with 11 different currency pairs simultaneously. those pairs being...
EURUSD
GBPUSD
USDCAD
USDJPY
AUDUSD
USDCHF
EURGBP
EURCHF
EURJPY
GBPCHF
CHFJPY
what i found was, when you take a position with a number of USD paired pairs, and then take a position with non-USD paired pairs, TWS will not allow you to exit the non-USD paired pairs. when you submit your order to exit, it submits the order but just sits there. and i can assure you that in this case, the number of messages per second were not exceeded.
it's been a while since i have tested this particular issue, so i cannot remember the exact message it reported after the submission of the orders. i concluded that it had something to do with taking positions with both USD paired pairs and non-USD paired pairs and how IB handles the currency exchanges. but there may be another condition with other instruments which causes a similar results.
this is something anyone can easily test by opening TWS and logging into the demo account and doing just as i outlined. but, i will note, I HAVE NOT TESTED THIS WITH THE NEWEST VERSIONS OF TWS. perhaps it's fixed now, i don't know.
to me, the problem i discovered sounds a lot like what you experienced zhexin2.