I added logic to force arcane book reading to be after customer interactions. That should prevent that issue. It might have been better for speed to just get the xp if that dialog was already open, but that wasn't as easy for me to add into the logic.
I submitted the changes for review. Next...