You missed the part that index
makes internal redirect and you always end up in first location.
There is more elegant and nginx-y way to achieve your goal:
location = / {
try_files /index.html =404;
}
location / {
return 301 https://new.com$request_uri;
}