1. We've got some path sorting functions... But they do not take into account which path is inside and which is outside.
I think it is a kind of wish list to make ordering depending on internallity of the subpath. If you can help specify all cases or algorithm of ordering the paths it could speed up developing this function

. Unfortunately I've got really small experience working with cnc and all other machines, my experience sum is about 24 ours of working with homemade cnc mill. And about 3 years of talking with people at this forum
As a work around you can try breaking path apart (Ctrl+Shift+K) and sorting them manually.
2. Yes we know about lacks of inkscape's offsets (by the way Dynamic offset and offset made by Alt+( are different ones). In fact offset is really complicated task. I saw bugs in offset even in Rhino 3.x, which is really powerful CAD! So there's much to do about it.
We are working on our own offset function, which is almost done, it is at the testing stage. It works with Biarc paths (Gcode is a kind of biarc path) and offset problem is much easier in that class of curves. But it still in the development version.
As a work around again, you can try another inkscapes offset, ALt+"(" or ")", you can specify it's step in Preferences (Ctrl+Shift+P) - Steps. Naother advice - try to add some nodes by Extensions - Modify Path - Add nodes (I can mistake in exact spelling of the extension but it's something like that).
PS attach your svg, probably I could make more advices

.