Duplicate _submit invocations when using callback validator

When using the callback validator the _submit function is invoked twice. This is due to the callback completing before the _submit function is invoked from the primary validate function. To fix the issue I have deferred the resolve function until the current call stack has cleared.