I don't want to be a dick, but if I was an investor, and I knew that you didn't actually know why your fills aren't what you think they would be, and if I knew you were asking if the system should be going for a market order 2 seconds after not getting filled or 10 seconds, I would be concerned.
I cannot imagine how someone goes from trading 1 contract, to 2, then maybe 3, then 5, then 10, then 20, etc, and not have come across these issues. To know that your system has the capability of being profitable with a rule such as buying at market 10 seconds later if not filled to me says that a lot of backtesting has gone into this, and I would once again assume that this backtesting would have taken into account how trades get filled.
With limit orders, you are clearly not getting slippage since you either get filled at your price or you don't. And if you move to market orders, well, clearly anything can happen there. Once again, why don't you just buy the ask in cases where you see your limit order not fill? This should fill instantly, and if price has moved away again in that the ask is now no longer the ask but the bid, or price is even 2 ticks away, well, you're back to your original problem of slippage anyway. I would imagine that you could easily code something like "if bid doesn't fill in 2 seconds, buy the ask".
My apologies, but once again, I'm still shocked for you to be where you are and need to ask for help with slippage.