wp-cron and execution of code in is_admin() included script

I had to read this a few times to understand it and I am not sure if my interpretation is correct. Anyhow here is my interpretation (apologies if I have gotten this wrong)…

You have a CRON job that is intended to update files of some sort. This CRON job will run when someone visits the site whether admin or not at your specified frequency. The CRON job can be switched off by an administrator from the plugin settings. You do not want to include any unnecessary includes.

I would split this into 2 separate parts first the settings part where I would set a on/off flag as follows:

define the flag as an option setting and set it to on (1) when the plugin is activated:

register_activation_hook(__FILE__, function(){
    add_option('xyz_cron_status', 1);
}

The value of this option will be changed through a form accessed through the plugin settings menu in the usual WordPress Plugin way.

Next define your CRON job in the plugin setup code (not surrounded by is_admin() function) as follows:

xyz_cron_option = get_option('xyz_cron_status');
if ( xyz_cron_option ){
    add_filter('cron_schedules', 'xyz_2weekly');
    add_action('wp', 'xyz_cron_settings');
    add_action('xyz_cron_hook', 'xyz_update_files');
}

where xyz_cron_settings is as follows:

/**
 * Create a hook called xyz_cron_hook for this plugin and set the time
 * interval for the hook to fire through CRON
 */
function xyz_cron_settings() {
    //verify event has not already been scheduled
    if ( !wp_next_scheduled( 'xyz_cron_hook' ) ) {
        wp_schedule_event( time(), 'xyz_2weekly', 'xyz_cron_hook' );
    }
}

the other functions are as shown in your code:

function xyz_2weekly( $schedules ) {
  ...
}

and

function xyz_update_files() {
  ...
}

I hope that this helps.