The problem was the following code in the level editor file:
void Application_Idle(object sender, EventArgs e)
{
Invalidate();
LevelView.Update();
}
The Application Idle event occurs just before the application is about to become idle and this resulted in an infinite redraw loop which is very processor intensive. Removing the Invalidate() call required updating the code to redraw whenever a user interaction occurs, this required changes to multiple files in the project and the resulting commit can be seen here on Bitbucket.
For anyone else having similar issues the problem of excessive redraws is likely to be caused because of changes to the control or manual Invalidate() calls.