Create default_content layout template based on post id

Figure out a way to create multiple different custom post templates for an end-user. That is, have predefined regions that they can insert content within a post.

You can do that with custom fields / meta boxes, which you can restrict or display based on post-type or ID. You should try the Advanced Custom Fields plugin.

Or lastly, is there another way to allow a end-user, with no HTML ability, to just put content into a post or page and it will automatically get formatted for them (with my doing the formatting on the backend)?

If the custom fields approach is too complicated, you might try the Quicktag API with buttons on the Visual Editor (check AddQuicktag). This way the user will only click a button on the Editor Toolbar and the HTML/CSS will be applied to the content. And if you edit the editor-style.css the user will be able to see the changes in the editor, just like it would appear on the front-end. I think it’s a cleaner approach than to use standard shortcodes.