Interesting stuff. And a novel approach with the dictionary building.
I'm not sure about the best way to find misspelt words. But I did read this article a while ago:
http://www.norvig.com/spell-correct.html
It implements a very simple spell checker in Python, and at the bottom are links to other languages as well (since we're talking Lua perhaps a Javascript one would be the closest equivalent). I'm not sure how CPU-heavy it is, though... Perhaps you'd need to only check at certain intervals or reduce the algorithm's complexity if it must run more often. But maybe it's a starting point.
Let us know what you end up doing, it's an interesting problem so I'd like to know what you find out.