upstream apenas fornece uma lista de servidores e algum tipo de peso. Para dizer ao Nginx o que fazer se um dos servidores falhar, você precisa controlar isso com memcached_next_upstream.
memcached_next_upstream
syntax: memcached_next_upstream [ error | timeout | invalid_response | not_found | off ]
default: error timeout
context: http, server, location
Which failure conditions should cause the request to be forwarded to another upstream server? Applies only when the value in memcached_pass is an upstream with two or more servers.
Como declarado na documentação, o comportamento padrão é error / timeout, que deve ser suficiente na maioria dos casos.