Yes, you are right, and that is a problem... in MSC, context.complete() should be allowed before asynchronous() because otherwise there's no way to coordinate these two actions.  I guess for a workaround you could synchronize on the runnable or something.