How can I add buttons to a custom column in the taxonomy table?

For something like this you might consider adding an ‘action’; which appear when you hover other the item.

The following code is not complete, and hasn’t been tested – but should get you on the right track.

Add the action

First, to add the action link, use the tag_row_actions hook. (Keep in mind a function hooked onto this will be fired on every taxonomy, so you need to check the taxonomy).
Something like:

add_filter('tag_row_actions','my_term_action',10,2);
function my_term_action($actions,$tag){
if($tag->taxonomy == 'issue'):
    $actions['my-action-class'] = '<a href="#"> My action </a>';
endif;
return $actions;
}

The $actions array is associative, where the key will become the class of the span element that wraps the action. The value, is what the span will wrap around.

You can use use the $tag (it’s an object, the term id is given by $tag->term_id) to determine which action to display, so if you wish to display the ‘publish’ action

$actions['my-action-class'] = '<a class="Publish" termid="'.$tag->term_id.'" href="#"> Publish </a>';

and if you wish to display the ‘unpublish’ action, instead add:

$actions['my-action-class'] = '<a class="Unpublish" termid="'.$tag->term_id.'" href="#"> Unpublish </a>';

I give them different classes and an extra attribute. This will be used by jQuery/AJAX to perform the relevant action…

The jQuery /AJAX

jQuery(document).ready(function(){
    jQuery(".my-action-class a").click(function(){
        change_publish_states(jQuery(this));
    });
});
    function change_publish_states(el){
   if(el.hasClass('Publish')){
      new_state="Unpublish";
   }else{
      new_state="Publish";
  }
        jQuery.getJSON(ajaxurl,
            {   term_id: el.attr("termid"),
                action: "my_change_publish_state",
                new_state: new_state
            },
            function(data) {
                if (data.error){
                    alert(data.error);                      
                }else{
                    //Update label and class
                    el.text(data.new_state);
                    el.attr('class', data.new_state)
                }
            });
    }

You need to add this script on the custom taxonomies page, you can run a function on admin_enqueue_scripts to check the page being viewed and conditionally enqueue it;

add_action('admin_enqueue_scripts','load_my_ajax_script');
function load_my_ajax_script(){
 //Check globals like $pagenow=='edit-tags' and $taxonomy=='issues' or $current_screen 
 //to make sure you are on the right page and enqueue script - or add a filter 
 //to print the script at the footer.

 global $current_screen;
 if ( $current_screen->id != 'edit-issue' )
  return;

 wp_enqueue_script( 'my_ajax_save', get_stylesheet_directory_URI() . '/my_ajax_save.js' );
}

Then it remains to add a function onto the AJAX action-hook :

AJAX action

add_action('wp_ajax_my_change_publish_state', 'change_the_publish_state');
function change_the_publish_state(){

   $term_id = $_GET['term_id'];
   $new_state = $_GET['new_state'];

   //Perform checks / logic & update publish status.
   $term_meta = get_option( "taxonomy_term_$term_id" );

   if ( $new_state == "Unpublish" )
    $term_meta['issue_published'] = 'yes';

   if ( $new_state == "Publish" )
    $term_meta['issue_published'] = '';

   update_option( "taxonomy_term_$term_id", $term_meta );    

//return the new state of the term
   $result['new_state'] = $new_state;
    echo json_encode($result);
    exit();
}