Redirect after saving form; and yet use wp_die()

Simply, you can not redirect the user from the sever in a Ajax callback. The redirect in the Ajax callback redirecta the Ajax request itself, it doesn’t redirect the user to a new location.

I hope you understand what I mean. Remember that Ajax, by definition, is asynchronous.

So, you need to think in another workflow.

For example (just an example, the workflow could be whatever best fit to your needs), the server could respond to the Ajax request with the new location URL; then the Ajax handler (which is client-side) checks the response and performs the redirection:

Ajax calback (server-side):

add_action( 'wp_ajax_my_action', 'cyb_action_callback' );
function cyb_action_callback() {
    // Something better than esc_url_raw() in this context??
    $data = array(
                      'location' => esc_url_raw( 'https://some.other/location' );
    );
    // See also wp_send_json_error() and wp_send_json().
    wp_send_json_success( $data );
}

Ajax handler client-side:

jQuery(document).ready(function($) {

    var data = {
        'action': 'my_action',
        'whatever': 1234
    };

    jQuery.get( ajaxurl, data, function( response ) {
            window.location.href( response.data.location );
   }

}