Init action and refresh page after form action

From the documentation: https://developer.wordpress.org/reference/hooks/init/

add_action( 'init', 'process_post' );
 
function process_post() {
     if( isset( $_POST['unique_hidden_field'] ) ) {
          // process $_POST data here
     }
}

In your example, perhaps having two different add_action is causing problems and burying your function where it’s not firing during init

I’m going to test a similar solution and see what happens, I will update if I learn more.