Your first problem I've also witnessed a few times, I'm not sure if it has any consequences.
The second problem is extreme in your case, with 9 buys! If all of those buys were listed in a new line, the log would get very long for no additional information.
Maybe an option would be to provide a way to 'unconsolidate' one line for the purpose of undoing. It would keep the log compact in the normal case but allow exact undo to the desired buy in your case.