Currently in AsyncSpellCheckTestHelper.jsm there's a onSpellCheck helper  that either waits for a pending spellcheck to complete, or runs a timer that waits for spellcheck to start, and then waits for it to complete. It then calls a callback function, regardless of whether the spellcheck occurs.
In Bug 1402822, I'm renaming this to maybeOnSpellCheck and adding a new onSpellCheck that always waits for a spellcheck to complete. I was able to migrate some callers to the new onSpellCheck, but not all. We should fix up maybeOnSpellCheck to be more reliable, since there's a number of intermittent failures associated with the spellchecking tests, and the current tests do not pass test-verification, even without the changes from Bug 1402822.