Если вы добавите это
Response.TrySkipIisCustomErrors = true;
перед установкой
Response.StatusCode = 404;
, то Sitecore сможет обработать ошибку и все равно вернуть код состояния 404.
Это связано с тем, что на сервере Windows 2008 работает IIS 7.5, который по умолчанию переопределяет ответ HTTP своими страницами ошибок по умолчанию, если страница возвращает код состояния ошибки HTTP, например 404 или 500.