I try to order the food as soon as they sit at the table. If they are talking to any of the sims that are there with them, I "x" out of them to where it shows the menu in the quey. Then after placing the order, it will quey up the "wait for order" (something like that). What I noticed is that the "order" is first in the quey, then the "wait". I "x" out of order (because I already ordered) and it will pop up a box about cancelling the order and I say yes. It will remove the "order" and drop down the "wait". It will bring the food when ready. If you didn't notice that right away and you waited a while, even doing this atm, the food will be brought to you right away because the food has been sitting over at the cook station. If they talk to whoever is with them, I make sure the "order" or "wait" is always at the bottom of the quey, then continue talking ( I think it works even if chatting is first, just make sure the order and menu is not both in the quey).
I am sure I misspelled quey, but you know what I mean :D Hope this helps!