Actually it is the placing that is giving me the problem but I think it is a "feature" of the TWS API.
I am entering MKT orders and I am expecting an orderStatus() callback but none comes within 5 secs. After reading the docs more closely, it seems that it is possible that no orderStatus() callback gets called for MKT orders and you need to check execDetails().
So I just have to send my order and not look for the callback.