Hi,
Nginx reads from top to bottom, just like you. In your example, you are returning 503 (an action) before instructing to use your custom error page. Just need to put your instructions first, then your actions...like so:
error_page 500 502 503 504 /50x.html;
location = /50x.html { root /usr/share/nginx/html; }
location / { return 503; }
-Skyler