You can hook onto `pre_option_stylesheet`.

(But I guess you'd have to do it from a plugin, since doing it from theme `functions.php` might be too late).

E.g.:

    add_filter( 'pre_option_stylesheet', 'yourthing_switch_theme' );
    
    function yourthing_switch_theme( $theme )
    {
       if ( is_user_logged_in() ) {
            return $theme;
       }
       else {
          return 'waiting';
       }
    }