Adding text to the footer of each post based on tags or categories

I would suggest a filter on the_content much like:

function conditional_footer_wpse_165930() {
  if (is_single()) {
   if (has_category('cat')) {
      return 'This is the cat footer';
    }
  }
}
add_filter('the_content','conditional_footer_wpse_165930',PHP_INT_MAX);

I am not sure about all of the details you require. You may need to tweak that code.