Heat oven to 425 degrees F.
Drizzle the mushrooms with the olive oil and then sprinkle them with salt and pepper. Roast in the oven until deep golden brown, 20 to 25 minutes. Set aside. Turn down the oven to 350 degrees.
Fry the thick slices of bacon until chewy, but not yet crisp. Chop up the bacon into bite-size bits. Set aside.
In a large skillet over medium-low heat, saute the onions in 1 tablespoons butter, stirring occasionally, until golden brown, about 15 minutes. Set aside.
Cook the macaroni until just undercooked. Set aside.
To make the sauce, melt the remaining 4 tablespoons butter in a large pot over medium heat. Sprinkle the flour, whisking to combine. Let the roux cook for a minute or so, whisking constantly. Then pout in the milk, whisking constantly. Cook the white sauce until thick and bubbly, 3-5 minutes. Next, add the half and half, 1 teaspoons salt and 1/2 teaspoons pepper. Spoon some of the hot white sauce into the beaten eggs to temper them, stirring with a fork to incorporate the mixture without cooking the eggs. Pour the tempered eggs into the white sauce, stirring constantly as you add them. Add the fontina, gruyere, parmesan, and goat cheese. Stir until the cheese melts. Add the cooked macaroni and stir to coat. Splash in a little milk or hot water if needed for thinning.
Butter a 9 x 13 inch baking pan. Layer on half the onions, half the macaroni, half the musrooms, half the gorgonzola and half of the bacon. Repeat layers, ending with the bacon. Bake until bubbly and hot, 20 to 25 minutes.