Hi Sean,
Thanks for posting that. I have finally figured out what is going on.
Apparently you need to do a Modify/Edit on your initial EditOperation in order for the ChainedOperation to register with the Undo Stack. Or at least, that is the only way I can get it to work.
It seems a bit counter-intuitive though. In my case, I am doing ALL of my editing in a loop. In your sample, you do an edit before your loop begins. I would think that in most 'real-world' examples if you were creating a loop to do some editing you wouldn't think you need to do that first edit in order to 'set-up' the rest of the edits.
Anyways, that's just my 2 cents. Perhaps the documentation needs to be updated to better explain how this functionality works.
Doing this, seems to get around that initial edit issue:
//initial editop
var op = new EditOperation();
op.Name = "ChainedLoop";
//this basically edits nothing, but sets things up so you can use a chainedEdit
var insp = new Inspector();
insp.Load(lyr, 1);
op.Modify(insp);
op.Execute();
Thanks for your help!