What is the current draw animation attached to your mesh? It's possible that reading is being set to false early because the animation takes time to complete even if the reading loop is done... I think. It's also possible that this code is being called before STM has begun reading, which would also cause "reading: to be false.
Either way, personally I'd use STM's on complete event for this instead! That way you don't need to check the state of the mesh every frame.