Override one line in core tabelselect jQuery behavior so custom checkboxes aren't affected
I ended up doing what I suggested, and overriding with my own custom version of tableselect.js 

/**
 * Implements hook_js_alter().
 */
function language_dashboard_js_alter(&amp;$javascript) {
  // Override core tableselect.js with custom version.
  $javascript['misc/tableselect.js']['data'] = drupal_get_path('module', 'language_dashboard') . '/js/language_dashboard_tableselect.js';
}


just to tweak this one line from this:

checkboxes = $('td input:checkbox:enabled', table).click(function (e)


to this:

checkboxes = $('td input:checkbox:enabled', table).not("input[id*='staging_only']").click(function (e)


by adding the .not() selector. It seems like a lot of code copying just for that one modification, but as of now, I don't see any other way.