WordPress overrides custom 404 page with it’s own

When a URL is processed by WordPress, its index.php script is loaded with the path to the requested page. Because in this case the index.php script is always found, a normal 404 error will never trigger (via ErrorDocument 404 …). If the requested URL does not match a page that WP knows about, WP will display its own “404” page.

Unfortunately, if WP processes a URL, there is no way to use a normal 404 page, bypassing the WP 404 page. This issue is documented at https://core.trac.wordpress.org/ticket/7592.