HI !
I'm obviously biased in favor of it, because I wrote it, but I really wouldn't understand you not using Smoothie :)
It has all of the features you mention ( and much more ).
About Gcode, there are many things you can do with smoothie :
1. Use gcode, simply reduce the queue size to 1.
2. Use gcode, create a new gcode that waits for the queue to be empty before answering ok ( my favorite, because it can be useful to other machines too, and doesn't change the rest of the protocol )
3. Use gcode, make new gcodes that do the move and then wait to be done before answering ok.
I think the main advantage of Smoothie over other choices you can make, is that it's built from the ground up to make adding new stuff to it as simple as possible.
This means that you can add any feature to it, without having to touch/undertand any of it's inner workings : simply create a new module, plug into events, do stuff, that's it.
http://smoothieware.org/moduleexample
Now what's cool about that, is that many projects/uses can then share the same firmware. Atm, Smoothie knows how to laser, 3D print, cnc mill. You would share a common code base with all of that. When other ppl that don't use openpnp, but use Smoothie, make ameliorations to the core, you'd profit from it ( and there are a lot lately, even though we don't even have a board yet ).
The board is coming mid-august :
http://smoothieware.org/smoothieboardIt also has lots of neat features, I always forget a lot, but : It has composite usb Serial and Mass storage ( simply drag and drop gcode files to it and it plays them, edit the config file directly on the board etc ... ), text file based config, play/pause, endstops ( in the unstable stepper branch, stable soon ), and .. yeah I always forget everything ...
And of course there's the fact that it runs of a 120Mhz 32bits chip, to compare to the arduinos.
We also will soon have delta robot support, and it has built in abstractions that make coding any non-cartesian arm solution a snap anyway.
It runs of the LPC1769 but there are ongoing ports to SAM3U and STM32F4.
But eh I coded it, so I'm not the most objective person.
Maybe there are other smoothians around here that can give their opinion, I would strongly suspect so :)
I love the project, and I'm always amazed by how fast you make progress.
If you have any question about smoothie, I'm around.
Cheers !
--
Courage et bonne humeur.