I'm working on making my ASP.NET MVC apps handle HTTP status codes correctly and when needed display a view for them.  I'm avoiding all of the out of the box error page handling since it isn't semantic (e.g. the framework always performs a 302 redirect with customErrors).
I have an AuthorizeAttribute and ActionFilterAttribute which are both working correctly and my custom view is displayed.  However, my HandleErrorAttribute isn't working quite right.
public override void OnException(ExceptionContext context) {
    HttpStatusCode httpStatusCode = HttpStatusCode.InternalServerError;
    var e = context.Exception;
    if (e is HttpException) {
        var httpException = (HttpException)e;
        httpStatusCode = (HttpStatusCode)httpException.GetHttpCode();
    }
    context.Result = MyResultBuilder.SetViewByHttpCode(context.HttpContext.Request, httpStatusCode, context.Controller.ViewData.ModelState);
}
I am setting the Result property, but at some point the pipeline is overriding my result as I end up with a Yellow Screen of Death (YSOD) instead of the view result that I defined.
How do I set a custom view result in the HandleErrorAttribute?
 
    