Il comportamento che riscontri e' corretto. Se Apache visualizza una pagina di errore, lo status non puo' essere 200 (altrimenti che errore e').

Puoi tentare di forzare lo status utilizzando un codice come il seguente (il funzionamento dipende dalla versione di Apache e dalla sua configurazione):

Codice PHP:
header("HTTP/1.1 200 OK"); 
header("Status: 200 OK"); 
Se non vuoi che avvenga dovresti usare mod_rewrite al posto di ErrorDocument, ad esempio:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /404.php [L]