How to extract ‘intro’ block from page content, but later strip from page main content

For anyone interested, with the suggestion from @TomJNowell I managed to retry using the render_block filter and simplify the solution to the problem:

Callback function (replacing example_filter_the_page_content() from my initial post):

 * Callback function used to skip intro section block from rendering.
 * To be used as callback for the `render_block` filter.
function example_filter_render_block_intro( $block_content, $block ) {
    if ( is_page() && is_singular() && in_the_loop() && is_main_query() ) {
        if ( 'core/group' === $block['blockName'] && 
            ! empty( $block['attrs']['className'] ) && 
              preg_match( '/\bis-style-intro-section\b/', $block['attrs']['className'] )  ) {

    return $block_content;

And then calling add_filter after rendering the intro, right before calling the the_content() function to render the page content:

 * Template part for displaying page content.
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <header class="entry-header container">
        <h2 class="entry-title"><?php the_title(); ?></h2>
        <?php example_the_page_intro(); ?>
    <div class="entry-content">
        <div class="container">

            add_filter( 'render_block', 'example_filter_render_block_intro', 10, 2 );

    </div><!-- .entry-content -->
</article><!-- #post-<?php the_ID(); ?> -->

This way, the render_block filter has already done its work for the intro section block, and consequently strips the intro section block right before rendering the page content.