I was able to get a work around in place. Since I was deleting all blogs with no user interaction. I created two mysql queries and ran them. The first was to drop all tables associated with the given $blog_id
the second was to remove that row from the wp_blogs
table.
$blogs = wp_get_sites( array('limit' => 0) );
array_shift($blogs); # removes first blog from the list
global $wpdb;
foreach ( $blogs as $blog ) {
$blog_id = $blog['blog_id'];
$query = "DROP TABLES ";
$query = "wp_{$blog_id}_commentmeta, ";
$query = "wp_{$blog_id}_comments, ";
$query = "wp_{$blog_id}_links, ";
$query = "wp_{$blog_id}_options, ";
$query = "wp_{$blog_id}_postmeta, ";
$query = "wp_{$blog_id}_posts, ";
$query = "wp_{$blog_id}_term_relationships, ";
$query = "wp_{$blog_id}_term_taxonomy, ";
$query = "wp_{$blog_id}_terms, ";
$wpdb->query( $query );
$wpdb->delete('wp_blogs', array( 'blog_id' => $blog_id ), array( '%d' ) );
}