What's the recommended method of circumventing infinite recursion with the scene_update_post handler?
I ran into this problem myself a while ago - the way i solved it was basically using a semaphore-like approach, where the handler would set a boolean value to true when it is invoked, and set it to false before it returns. Before setting the boolean, it would first check if it was already set, and if so, return without executing. I doubt that race conditions are a thing in Blender's python API, but hey, it works.

handler_running = False

    def handler():
        if handler_running:
            return
        handler_running = True
        # Do something
        handler_running = False