It turned out that Krita can't fully rely on QUndoCommand functionality, so on Deventer sprint it was suggested to modify our transactions . Now I'm glad to show you results of the work done.
Shortly, the new system is based on two classes, the first represents the boundaries of the transaction, while the second defines the lifetime of the undo information. Touching base transaction classes caused much code to be revised, but now it is done.
So now, if you want to get more details about new system, you can read a complete description on our wiki page.
You can even take part in testing of the new system by applying the patch.