Sua sintaxe está correta (e funcionou bem para mim). Mas você precisará de um arquivo chamado 404.html no nível raiz para cada webapp implementado para que ele funcione.
Se você não quer fazer isso - há o pouco sabe errorReportValveClass como parte do StandardHost em que você pode fornecer sua própria implementação de uma classe para lidar com todos os erros não detectados.