TL;DR: Похоже что в изменении https://forum.nginx.org/read.php?29,276778,276778 не учтено, что ngx_http_upstream_cache_send может вернуть NGX_DONE не только как результат ngx_http_upstream_process_headers, но и как результат ngx_http_cache_send. В результате соединение висит открытым.