Create fixed static pages

I would not try to get too tricky and hide pages from users. What happens if they try to create a page with the same slug? I think it would just create confusion and more problems than it would solve.

When you create the pages, store their IDs, not slug. Let users then change those through your options screen. This is similar to how WordPress tracks your blog and front page- by storing their IDs in options.

Then for the templates, add a filter to page_template and apply your custom templates if the ID of the requested page matches what’s stored in the option.