Ordering a sequence of commands is impossible.
Besides that, you need to distinguish whether your airplane was moved by the user or by your own circling-script. You could do this by creating a trigger which fires when a unit gets a command, and check for a variable to be set, like USER_COMMAND == true, then each time your circling trigger runs, you set USER_COMMAND = false, order the commands, and afterwards set it to true again. I think you got the idea.
However, let me ask you some important questions:
- How many airplanes will be on your map?
- Are command sequences required? (Holding shift)
if there are only about 20-40 airplanes, it would be quite easy to move them by hand, but that would cancel command sequences. That would definitely be the nicest-looking way, but by far the most difficult.
Another interesting thing is to set the unit turn-rate to a negative number I think, or a very low one, I am not sure... The effect will be that the unit won't turn around instantly, but move in quite smooth circles. This combined with some circling while being idle could look good, too.
By the way, it is wrong that checking the command for "stop" will tell you whether the unit is moving or not, because it could also be holding position...
Anyways, there is one problem you will always have to face: As soon as the airplane is attacking, you can no longer tell whether it is moving by checking the command, AND if you give it another order it will forget the unit it was attacking before. I think the only way to handle this is to use SetUnitX/Y instead, as it does not cancel the current order. But this needs a fast timer, good coding, and comes with some other annoying problems.
Well, I tried this before and I ended up doing nothing about the movement of idle airplanes:
http://www.hiveworkshop.com/forums/maps-564/supcom-icy-oasis-v21-94985/
And things like this will get a bit laggy with more airplanes

:
http://www.hiveworkshop.com/forums/maps-564/flightsim-1-5-a-150036/
You better forget about it and stick to helicopters.
And by the way, if you set your movement speed to a very low number and simply move the airplane into its facing direction a few units every 0.0x seconds, it could miss some waypoints (at least with a speed higher than 522). I am not sure whether this works for lower speeds, however, you will definitely need to monitor the ordered commands with target locations/units and so on, because otherwise a airplane being "stopped" will just run straight forward, you would need to make it return to its original position ("target position" of "stop") as soon as it leaves a certain range of that point. Same for "hold position", but luckily not for "attack", as the unit will check the range on its own and return as soon as its out of range.
Man, this sounds like it would work, maybe I should give it a try in my SupCom map (on which I am not working for like 10 months now). Probably too much airplanes in the sky though.