Now that this project is dead and buried, and all forum discussion seems to have stopped, I felt like making what may very well end up being the last post here!
Not that I'm expecting anyone to read it, but I felt like pointing out there's nothing wrong with what Josh did in the end.
(*) Implement basic functionality in C for speed. Check.
(*) Use the fastest available scripting language (Lua) for the rest. Check.
(*) Use Lua cleverly to make sure it JITs properly, and so it doesn't need to use its crummy garbage collector. Check.
That's EXACTLY how a project such as this should be tackled. There's nothing wrong with making your own engine for a project such as this, where you don't need super realistic graphics, and where you really need a *lighter* engine than the commercial engines out there. It's in fact exactly the right approach!
The only thing Josh did wrong, was taking too long to figure out the right way to approach the project. He wasted YEARS on dead ends. First he implemented his own scripting language (an incredibly bad idea!). Then when he finally realized he wasn't going to get the speed he needed from it, he translated all of his scripting code to one of the *slowest* scripting languages in existence (Python), in the vain hope someone would make it run fast enough with a JIT (which is a seriously difficult proposition, because the nature of Python precludes a lot of optimizations and makes JITing it ridiculously hard to do well).
In short, Josh wasted too much time on dead ends that he could (and really should!) have known were dead ends from the beginning, if he had just taken a sober look at things and done some proper research before enthusiastically starting to write code.
It's no big secret that designing and implementing a FAST scripting language of your own is a major challenge, and will take many YEARS of effort all in itself. It's not a viable way to get a game done, so he should have just said NO! to this idea as soon as it popped into his head.
It's no big secret Python is a slow language that can't be JITted well either, he should have put in a day of googling to find the fastest scripting language from the beginning. There was never any need to even consider Python for this game engine, so that was even more time wasted on a guaranteed dead end.
Add to this all the happy experimentation with tooling, and inventing cool infrastructure to build even better tooling, and Josh was in trouble. Big trouble. The fact his vision for the actual game was vague and constantly morphing didn't help either, and so the project was doomed.
I'm just writing this to set the record straight in the end: there is absolutely nothing wrong with the way he eventually chose to do it, and the half-baked engine that resulted may turn out to be very useful for others once it is open sourced and finished. Josh struggled with making the right technical decisions for a long time, and would have been greatly helped by taking some advice from someone more experienced. He did figure it all out by himself in the end, he just ran out of time and money before getting very far on the actual game.