wp_redirect not working in header, exit is breaking page

wp_redirect send a header, so echoing anything before it will make the redirect fail.
So, in this case you could remove echo network_home_url( '/receptionist' ); and if there isnt any output being sent it will work just fine.

Update:
In both cases the issue is that you do an infinite redirect (redirect to that url if not logged in),and commenting the exit does not help, also in the first case,when using die() you kill the page for all logged in users, instead use something like this (added checks if we are on admin so an user can login-register)

global $pagenow;
if ( !preg_match("!wp-admin!",$_SERVER["REQUEST_URI"] ) and !in_array( $pagenow, array( 'wp-login.php', 'wp-register.php' ) ) ){
    $scheme = is_ssl() && !is_admin() ? 'https' : 'http';
    $current_url=$scheme . '://'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
    $network_url=network_home_url( '/receptionist' );
    if (!is_user_logged_in() and $current_url!=$network_url){ 
        wp_redirect( $network_url );  exit;  
    } 
}