Why are my custom error pages returning HTTP status 200 headers?
I believe you still have to return the proper status code from your custom error page. For instance, for a custom 404 page, you need:

&lt;?php header("HTTP/1.0 404 Not Found"); ?&gt;