Creating a multi-taxonomy query, excluding the newest (read: highest ID) taxonomy term

Have you considered using a more standard loop, like this? I think it might fix your issue #3.

$query = new WP_Query( $args );

echo '<div class="home-middle widget-area">';
echo '<h4 class="widget-title widgettitle"><span>From the Archives</span></h4>';

if ($query->have_posts()) {
    while ($query->have_posts()) {
    $query->the_post();
        echo '<article class="post type-post status-publish format-standard has-post-thumbnail entry">';
        echo '<a href="' . get_the_permalink() . '" class="alignleft" aria-hidden="true">';
        echo the_post_thumbnail( 'home-middle' );
        echo '<time class="entry-time" itemprop="datePublished">' . get_the_date() . '</time>';
        echo '</a>';
        echo '<h4>' . get_the_title() . '</h4>';
        echo get_the_excerpt();
        echo '</article>';
    }
} else {
    echo 'No posts in the Archive';
}

echo '</div>';

wp_reset_postdata();