Create one-use post dynamically, add to main query, do not insert post (user profile view)

From what I understand you are trying to change the permalink structure of the user, so instead of showing yoursite.com/author/yourusername it will show yoursite/profile/yourusername?

You can add a rewrite rule to the permalink structure to make that change:

function yourdomain_user_rewrite() {
    global $wp_rewrite;
    $wp_rewrite->author_base="profile";
    $wp_rewrite->author_structure="https://wordpress.stackexchange.com/" . $wp_rewrite->author_base . '/%author%';
}

add_action( 'init', 'yourdomain_user_rewrite' );

Then Worpdress will automatically load author.php on your theme when yoursite/profile/XXXX is queried. No complicated queries involved!

Is that what you are looking for?