Preheat oven to broil with rack in top third position. Coat a 7-by-11-inch broiler-safe baking dish with cooking spray (do not use glass). Fill a large pot with water; bring to a boil over high heat.
Add 8 cups broccoli to the boiling water; cook, stirring occasionally, until tender and bright green, 5 to 6 minutes. Drain in a colander.
Melt 1 tablespoon butter in the pot over medium heat. Add ½ cup onion and 1 tablespoon garlic; cook, stirring often, until browned and softened, about 5 minutes. Add the remaining 2 tablespoons butter; cook until melted, about 1 minute. Add ¼ cup flour; cook, stirring constantly, until the flour is lightly browned and has a slightly nutty aroma, 1 to 2 minutes. Gradually whisk in 2¾ cups milk; cook, whisking occasionally, until slightly thickened, 6 to 8 minutes. Add 1 teaspoon each dry mustard and Dijon mustard, ¼ teaspoon plus ⅛ teaspoon salt, ¼ teaspoon black pepper and ⅛ teaspoon cayenne, if using; cook, stirring, until the mixture is well combined and returns to a boil, about 1 minute. Remove from heat; stir in half of the white Cheddar and Gruyère (about ⅓ cup each) until well combined and melted.
Add the broccoli to the cheese mixture, stirring until evenly coated; transfer to the prepared baking dish. Top with the remaining Cheddar and Gruyère, ¼ cup panko and ¼ teaspoon garlic-and-herb seasoning. Broil until the cheeses are melted and the panko is golden brown, 3 to 5 minutes.
