Allow rescheduling within a callback

This may break, fix, or otherwise change things.  I tested several games and have not found any problems now (with the rest of the fixes so far out of the way.)

I think we can say this fixes #1082.  Callbacks are still not correct in everyway, but they are not "not at all correct" anymore.

-[Unknown]