The Global Error Page that can be enabled in siteSettings does not play well with IIS7. You should set TrySkipIisCustomErrors to true like the yellow screen of death does.
As you might have noticed custom error handling works differently in IIS7. There is a new tag system.webserver/httpErrors in your applicationHost.config or web.config.
ASP.NET hands over control to IIS if the status code is over 400 and both the standard APS.NET yellow screen of death or a custom error page you generated in code can be replaced later in the pipeline with IIS7 custom errors.
The new property Response.TrySkipIisCustomErrors must be set to true if you want your content to be shown after you change Response.StatusCode. ASP.NET does this for its yellow screen of death in compatibility mode. You also need the existingResponse-attribute to be set to auto (default).
Thank you for reporting this problem.
This issue has been reported as bug #37751. You will find it on bugs.episerver.com. The fix will be included in CMS6.