Fake Single WordPress Post (Page) Loop

How about something like this instead:

add_action('template_redirect', function(){
    get_header();
    echo 'page stuff';
    get_footer();
    exit();
});
add_filter('the_title', function(){ return "Virtual Page Title"; });

What you are trying to do strikes me as very prone to error. Different themes can do all kinds of different things with page.php, not to mention that it may not be present at all.

What you are doing actually works when I test it on Twenty Thirteen. If you are have trouble with some theme or another, take that as evidence of the preceding point– this strikes me as prone to error. A lot of things happen in themes that your plugin has no control over. If you are going to create a page you probably need to create the bulk of it yourself.