How can I access history list? (python) I want to be able to track if history changed by waiting for its last element to change from modal operator. Is there a way to access such list over python?
Unfortunately, you cannot access the history list directly from python (I'm pretty confident this is the case.).

The history list is called by bpy.ops.ed.undo_history() and doesn't have any accessible attributes that you can read into a list. In fact, bpy.ops.ed's methods come from bpy.types where the class  starts with ED_OT_ (eg. bpy.ops.ed.undo() is really an instance of bpy.types.ED_OT_undo()

It looks like the undo stuff is in the guts of blender-app.exe but you can try and mess around with this bpy.ops.ed stuff and see if you can manage something that I may be overlooking.