I also managed to make it so you can't start a game, save, exit to main menu and start a new game.
Both of these issues have been fixed. I've also located the issue with the lag; it's the same bug that I thought I fixed back in May. Coroutines are getting caught in the system and it is causing XNA to start calling update or draw in fast succession. I'm working on fixing this now.
I'm working on the lag issue now. Once I have that resolved I'll upload a new installer. A big thanks to Raymond Jacobs for trying the game out and helping me identify these new issues.
[edit]
It looks like the loading of scenes is taking just long enough to screw with XNA, causing it to call multiple update and draws to catch up. I have two options:
1) Disabling the fixed timestep seems to fix the issue.
2) Off-load this some so that it is done asynchronously. If it starts to take too long, I can have a loading message/screen pop up.
The latter seems like the better choice, but honestly it would be more of a nuisance in my opinion. Basically the loading screen would pop up for literally a second at points.
I'll think it over and see what I can come up with.
[/edit]
[edit]
Ok, I think I have it fixed. I've completely rewritten the coroutine system. I'm not sure if you remember me posting it earlier this year, but it was very very naive. Most of it was handled via runtime script generation and I really just cobbled it together to get it working. I have completely removed the script generation and implemented a nice new class-based implementation that uses variable arguments and unpack. It is still using my CoroutineTable C# class, but I'm thinking tomorrow I can quickly remove that completely since there is no longer any script generation. Then I can just add some extension methods to Lua and I'll be good to go.
I've also figured out a new bug that I've been seeing pop up here and there, but absolutely could not figure out. Every now and then I'd hold down the mouse button to select my verb and I would be selecting a verb for some other object. I do it quite quickly, so I couldn't really catch what the object actually was. Turns out, I'm apparently forgetting to nullify the object that you're hovering over at some point. So, if you hover over an object, move off of it, hold down the mouse button and then move it over a different object, you'll be selecting a verb for the original object.
I'm off to bed now; I'll test some more to see if the lag issue is resolved and I'll post an updated installer once I have the bugs I've found cleaned up.
[/edit]