How do I setup a proper 404 page?
Instead of using a 301 redirect to your custom 404 page, just go to

Admin > Config > System > Site Information

/admin/config/system/site-information


Enter your new path into the 404 error page box, and click "Save configuration".

You might also want to try the CustomError module:
https://www.drupal.org/project/customerror