Show post content in two different places without redirect

I ended going the CPT route, as I couldn’t figure out other way. Just added a bunch of logic to duplicate/modify/delete the normal posts when needed.

<?php // function for the CPT
function SU_kuuma_kysymys_type() { 
    // creating (registering) the custom type 
    register_post_type( 'kuuma_kysymys', /* (http://codex.wordpress.org/Function_Reference/register_post_type) */
        // let's now add all the options for this post type
        array( 'labels' => array(
            'name' => ( 'Kuumat kysymykset' ), /* This is the Title of the Group */
            'singular_name' => ( 'Kuuma kysymys' ), /* This is the individual type */
            'all_items' => ( 'Kaikki kysymykset' ), /* the all items menu item */
            'add_new' => ( 'Lisää uusi' ), /* The add new menu item */
            'add_new_item' => ( 'Add New Custom Type' ), /* Add New Display Title */
            'edit' => ( 'Edit' ), /* Edit Dialog */
            'edit_item' => ( 'Muokkaa kysymystä' ), /* Edit Display Title */
            'new_item' => ( 'Lisää kysymys' ), /* New Display Title */
            'view_item' => ( 'Näytä kysymys' ), /* View Display Title */
            'search_items' => ( 'Etsi kysymyksiä' ), /* Search Custom Type Title */ 
            'not_found' =>  ( 'Kysymyksiä ei löytynyt.' ), /* This displays if there are no entries yet */ 
            'not_found_in_trash' => ( 'Roskakori on tyhjä.' ), /* This displays if there is nothing in the trash */
            ), /* end of arrays */
            'public' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => true,
            'show_ui' => false,
            'show_in_admin_bar' => false,
            'query_var' => true,
            'menu_position' => 8, /* this is what order you want it to appear in on the left hand side menu */ 
            'menu_icon' => get_stylesheet_directory_uri() . '/library/images/custom-post-icon.png', /* the icon for the custom post type menu */
            'rewrite'   => array( 'slug' => 'kuuma-kysymys', 'with_front' => false ), /* you can specify its url slug */
            'has_archive' => 'kuuma-kysymys', /* you can rename the slug here */
            /* the next one is important, it tells what's enabled in the post editor */
            'supports' => array( 'title', 'editor', 'author', 'comments')
        ) /* end of options */
    ); /* end of register post type */

    /* this adds your post categories to your custom post type */
    register_taxonomy_for_object_type( 'category', 'custom_type' );
}
// adding the function to the WordPress init
add_action('init', 'SU_kuuma_kysymys_type');


//first all the methods handling the question CPT posts
function SU_add_kysymys_post($post) {
    $newpost = array(
        'post_name'         => $post->post_name,
        'post_title'        => $post->post_title,
        'post_content'  => $post->post_content,
        'post_status'       => $post->post_status,
        'post_type'         => 'kuuma_kysymys',
        'post_author'       => $post->post_status,
        'post_category' => $post->post_category
    );

    $kysymys_post_id = wp_insert_post($newpost, true);

    // add the post ID's to their respective meta fields on both posts
    update_post_meta($post->ID, 'question_post_id', $kysymys_post_id);
    update_post_meta($kysymys_post_id, 'original_post_id', $post->ID);
}

function SU_update_kysymys_post($post, $q_post_id) {
    $updatedpost = array(
        'ID'                        => $q_post_id,
        'post_name'         => $post->post_name,
        'post_title'        => $post->post_title,
        'post_content'  => $post->post_content,
        'post_status'       => $post->post_status,
        'post_type'         => 'kuuma_kysymys',
        'post_author'       => $post->post_status,
        'post_category' => $post->post_category
    );
    wp_update_post($updatedpost, true);
}

function SU_delete_kysymys_post($post, $q_post_id = false) {
    // If we dont give $q_post_id check if we have the meta field
    if (!$q_post_id) { $q_post_id = get_post_meta($post_id, 'question_post_id', true); }
    // If we now have CPT post id -> delete it
    if($q_post_id != "") {
        update_post_meta($post->ID, 'question_post_id', '');
        // Remove the deletion hook in case we're just removing the category
        remove_action('delete_post', 'SU_check_kysymys_deletion', 10);
        wp_delete_post($q_post_id, true);
        add_action('delete_post', 'SU_check_kysymys_deletion', 10);
    }
}

// and the logic on what to do and when
function SU_check_kysymys($post_id, $post, $update) {
    //if new post or doing autosave/revision do nothing
    if(wp_is_post_revision($post_id) || wp_is_post_autosave($post_id) || get_post_status($post_id) == 'auto-draft') { return; }
  else {
    // We're saving/updating, go for it
    $q_post_id = get_post_meta($post_id, 'question_post_id', true);
    if (has_category('kuuma-kysymys', $post_id)) { // has the category "kuuma kysymys"
        if($q_post_id == "") {
                SU_add_kysymys_post($post);
            // wp_die('<pre>No q_post_id meta so new post?.<br><br>$post=".var_export($update, true)."</pre>');       
        } else {
            SU_update_kysymys_post($post, (int)$q_post_id);
                // wp_die('<pre>We have q_post_id so just update existing CP I think.<br><br>$post=".var_export($post, true)."</pre>'); 
           }
    } else { // doesn't have the category (at least not anymore)

        if($q_post_id == "") { return; } // doesn't have the category or earlier remains of the meta field
        else { // doesn't have the category but has meta field -> had the category before -> delete the added CP
            SU_delete_kysymys_post($post, (int)$q_post_id);
                //wp_die('<pre>We have post meta but lack the category so delete CP<br><br>$post=".var_export($post, true)."</pre>'); 
        }
    }
  }
}
add_action('save_post', 'SU_check_kysymys', 10, 3);

// logic for deleting questions if the concurrent regular post is deleted for any reason
function SU_check_kysymys_deletion($post) {
    if (has_category('kuuma-kysymys', $post->ID)) {
        SU_delete_kysymys_post($post);
    }
}
add_action('delete_post', 'SU_check_kysymys_deletion', 10); ?>

but this way I can access the “same” post from two different locations and have a custom template for each one.