Any other thoughts would be very welcome.
Another quick thought. Given the environment switching code you're using, if the command changes from an #isQuick command to non-viewing command then environment will change. The value of #environment is used during rendering and also indirectly in call to #children. If there's a mismatch between the environment used within a rendering-callback cycle that's going to confuse Seaside when it processes the callbacks.
Nick