Place Gruyere and 1/2 cup Parmesan in a large heatproof bowl. Combine ricotta, egg, black pepper, and 2 tablespoons parsley in medium bowl. Set both bowls aside.
Melt butter in medium saucepan over medium heat until foaming; add shallot and garlic and cook, stirring frequently, until beginning to soften, about 2 minutes. Add flour and cook, stirring constantly, until thoroughly combined, about 1 1/2 minutes; mixture should not brown. Gradually whisk in milk and broth; increase heat to medium-high and bring to a full boil, whisking frequently. Add salt, bay leaf, and cayenne; reduce heat to medium-low and simmer until sauce thickens and coats the back of a spoon, about 10 minutes, stirring occasionally with heatproof rubber spatula or wooden spoon and making sure the scrape bottom and sides of saucepan. You should have about 4 cups of sauce.
Remove saucepan from heat and discard bay leaf. Gradually whisk 1/4 cups aof sauce into ricotta mixture. Pour remaining sauce over Gruyere mixture and stir until smooth; set aside.
Adjust oven rack to upper middle position and heat oven to 350°F Place noodles in 13 x 9" baking dish and cover with very hot tap water; soak for 10 minutes, agitating noodles occasionally to prevent sticking. Remove noodles from water, place in a single layer on kitchen towel, and pat dry. Wipe out baking dish and spray lightly with nonstick cooking spray.
Distribute 1/2 cup sauce in bottom of baking dish. Place 3 noodles in single layer on top of sauce. Spread 1/2 cup ricotta mixture evenly over noodles and sprinkle evenly with 1/2 cup fontina and 3 tablespoons Gorgonzola. Drizzle 1/2 cup sauce evenly over cheese. Repeat layering of noodles, ricotta, fontina, Gorgonzola, and sauce 3 more times. Place final 3 noodles on top and cover completely with remaining sauce, spreading with a rubber spatula and allowing to spill over noodles. Sprinkle evenly with remaining 1/2 cup of Parmesan cheese.
Spray large sheet of foil with nonstick cooking spray and cover lasagna; bake until edges are just bubbling, 25-30 minutes, rotating pan halfway through baking time. Remove foil and turn on oven to broil. Broil until surface is spotty brown, 3-5 minutes. Cool 15 minutes. Sprinkle with remaining 2 teaspoons parsley; cut into pieces and serve.