Featured posts and the loop

A simple approach could be to use a global array in which you will store posts that are selected in the featured query.
You could set this array in your functions.php or index.php : $featured_post_array = array();
Then in your featured.php file first call the global array somewhere in the beginning:

global $featured_post_array;

and inside the foreach loop add :

$featured_post_array[] = $post->ID;

Last in the index.php in your query arguments use the post__not_in parameter:

$query = new WP_Query( array( 'post_type' => 'post', 'post__not_in' => $featured_post_array ) );

Another way would be to ignore posts with the tag (or taxonomy) “featured” by using the tag__not_in or category__not_in parameters