Looking for callback function after Gutenberg is rendered?

Well, its very hard to find developer documented posts about Gutenberg and the block editor. This solution works for us, and as Gutenberg is using javascript for everything, we do the same, but wraps it up in jQuery, as we hate react API.

;( function( $ ) {
    $(document).ready(function(){
        
        // EVERYTHING HERE IS A UNIQUE SCOPE
        
        function this_init(){
            // Start calling your functions from here:
            do_something();
            do_something_else();
        }

        let blockLoaded = false;
        let blockLoadedInterval = setInterval(function(){
            if(document.getElementById('post-title-0')){
                blockLoaded = true;
                this_init();
            }
            if(blockLoaded){
                clearInterval(blockLoadedInterval);
            }
        }, 500);
        
        function do_something(){
            alert('Hallo Gutenberg, lets do some performance');
        }
        
        function do_something_else(){
            alert('Hallo Gutenberg, lets do some performance');
        }

    });
})(jQuery);

In PHP/ functions.php use the hook for backend only to load your script file:

add_action('enqueue_block_editor_assets', 'your_enqueue_scripts_php_function');

I suppose there will be a Gutenberg “API” update on this issue just like TinyMce before render etc etc. And No, its not a hack, its just like Gutenberg, as the block editor is just a huge client script hack.

Tip:
In case you need actions after all the lazy load going on in the edit screed. just use jquery as ajaxStop() functions as so on.