usually you implement the provided interface that has several onSomething() like methods
so you connect and then messages flow back through your implemented methods ie.
void onUpdate(MarketData md){
print md.Bid;
}
short answer is they are not dealing with global markets using algo's that were developed only on US day exchange data. I dont even think someone managing a couple million or less would do that.
in that case then it's not IB being slow, it's you're software. Assuming you're sending limit orders, chances you get a better price are slim. Still think you should attach OCO with original order. can always send cxl/replace when you get fill
first you need to know what a finite state machine is. It's a software design pattern and unrelated to strategies although you could use it to keep "state".
a simple example is a light switch (on/off)