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.)  However, there are a few games I'm highly suspicious may be affected by waits not "applying" properly within a callback.

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]