One thing I definitely don't recommend using with Undo system is WAIT action, it will add more bugs and problems.
Saving/loading time depends on the amount of data. If you are saving lots of objects, it can take several seconds on slow machines.
The correct solution is to not save a new undo step until previous save has completed.
Also, save only one undo step after user finished resizing the object. Saving dozens of steps for one resizing operation is a bad idea anyway, because users will have to press Ctrl-Z many times to undo them, and the total number of steps is limited.
Of course other software are using different methods for undo, you are welcome to try some other system if this doesn't work for you.