Is object data, as accessed by Python, not committed until you exit edit mode?
I think you just need to call the update_from_editmode () method of the object.
https://docs.blender.org/api/2.79/bpy.types.Object.html?highlight=update_from#bpy.types.Object.update_from_editmode