After investigating, I used the wrong function:
get_terms();
using this spits out ALL tags that are defined.
To list all Tags used by a SINGLE post one must use get_the_terms();
So the final code:
// Get Tags
$args = array (
'taxonomy' => 'newstags',
'orderby' => 'name',
'order' => 'ASC',
);
$tags = get_the_terms($post, 'newstags');
if ( !empty($tags) ) :
foreach ( $tags as $tag ) {
$tag_link = esc_url( get_tag_link( $tag->term_id ) );
$html = '<span id="news-pill" class="badge badge-pill badge-secondary"><i class="fas fa-tag"></i> ';
$html .= "<a href='{$tag_link}' title='{$tag->name} Tag' class='{$tag->slug}'>";
$html .= "{$tag->name}</a></span>";
echo $html;
}
endif;