Is there a way to have WordPress autodetect page templates in the page-templates directory and any sub-folders?

You should be able to do this with the theme_templates filter (see the get_page_templates() function). What you need is a function that walks through the sub-directories and returns all the page templates. Then you hook it into that filter. You could create a function based on get_post_templates(), replacing the call to get_files() with a function … Read more