How to create custom page templates with default page layout framework?

I think you are doing this right… but in the wrong direction. What if you separate your default structure like:

content-header.php

<?php get_header(); get_sidebar(); ?>
<div id="content">

content-footer.php

</div>
<?php get_footer(); ?>

And then you can use get_template_part to put all together:

index.php

<?php get_template_part( 'content', 'header' ); ?>

<?php
while ( have_posts() ) {
    the_post();
    the_content();
} // end while
?>

<?php get_template_part( 'content', 'footer' ); ?>

page-template.php

<?php get_template_part( 'content', 'header' ); ?>

// [special template php code]

<?php get_template_part( 'content', 'footer' ); ?>