Não sei por que você gostaria de ter um tempo limite ou dizer que a resposta 50X é válida, mas se você realmente quer apenas os 404, os documentos do Nginx explicam isso da seguinte maneira:
max_fails=number
sets the number of unsuccessful attempts to communicate with the server that should happen in the duration set by the fail_timeout parameter to consider the server unavailable for a duration also set by the fail_timeout parameter. By default, the number of unsuccessful attempts is set to 1. The zero value disables the accounting of attempts.
Aqui está o kicker:
What is considered an unsuccessful attempt is defined by the proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream, scgi_next_upstream, and memcached_next_upstream directives.
Syntax: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | off ...;
http_404 a server returned a response with the code 404;
Esta resposta para um post semelhante poderia formar a base para sua configuração: