In the previous commit message I forgot to mention that I also implemented Context.at_exit, and updated the Callback machinery so that its state is correctly cloned at split time