are your levels pretty big and or densely populated? if thats the case then part of the freezing could just be the next level being loaded. this could also be part of why its crashing on you, the process for loading a new level is done while the old level is still open so you could be running into memory problems or running out of other resources. if this is indeed the issue then one solution would be to load a transition level prior to loading the next actual level. a transition level is basically a blank level, nothing in it so it doesnt take much to run it. the transition level could also be where your loading screen would be displayed.