Currently, this function leaks memory and object state if a context is loaded with an async operation and has its memory replaced. Any objects stored as parameters with non-trivial destruction are leaked. If the context is started, even more so. This function can call cancel() to ensure this function is always safe to call when swapping stack frames out.