It looks like the undo stack is only updated after a shape is "closed/done", which is a bit problematic. At least, I get bitten from time to time and I undo something I don't intend to.
Steps:
1. Move a couple of parts on a board to add events to the undo stack
2. Start drawing a trace between pads
3. Midway through the previous operation, hit undo
-> Verify that the undo operation is one of the MOVE operations from before you started drawing the trace.
-> Expected behavior is that the last point in the shape you're drawing is removed.
This results in a pretty unforgiving UI when drawing things; you have to nail it perfectly the first time. Ideally, each step of the drawing would be added to the undo stack.