Time Limit decorator
This is actually a stab in the dark but could you use the .NET 4 System.Threading.Task object for this.  Something like:

var task = Task.Factory.StartNew(() =&gt; _wrapped.Run(code) });

// Wait returns true if the task finished within the allocated timeframe
// http://msdn.microsoft.com/en-us/library/dd270644.aspx
if(task.Wait(_timeoutInSeconds * 1000))
{
   return executionResult;
}
else
{
   throw new ApplicationException(string.Format("Code took longer than {0} seconds to run, so it was aborted.", _timeoutInSeconds));
}