I'm not sure if that's really the problem: But Application.OnIdle isn't exactly a good timer for games.
If you want to keep it, make sure you only handle OnIdle if you need to (which means: if your desired framerate is 25 FPS, only handle it 25 times per second). Otherwise your game will always use 100% CPU and it may be choppy and show exactly the behavior you described in your post.