How are you structuring your contexts? Are they siblings or parent/children, or both?
Cross Context bindings shouldn't be affected, so I haven't seen any issue cleaning up multiple contexts on scene changes. That having been said, I don't quite understand your exact use case, so I'd need to know a little more to give a better answer. The nature of Promises does suggest that their callbacks may be referencing things which have already been cleaned up.
I think trying to have a Context clean itself up asynchronously as it destroys itself is a fairly brittle idea, but doable. You may want to manage it in an easier to understand (and outside) way. Otherwise you may find yourself constantly fighting a fragile order of cleanup operations. In general, I work at cleaning up all events, promises, signals and bindings and then nuke entire hierarchies. How you accomplish that is kind of up to you.
All in all this is a small part of a larger discussion, so some more info may prove valuable! Cheers!