Cut the broccoli, stems included, into bite sized pieces. Plunge in boiling water for 2-3 minutes exactly, then drain and put in ice water to stop cooking. When cold, drain on a clean kitchen towel.
Meanwhile melt the butter in a saucepan and add the flour, stirring to combine. Cook, stirring constantly, for a few minutes, without browning. Slowly add in the half and half, stirring or whiskling constantly, until the mixture thickens. Note: you don't need to bring it to a boil. I usually switch to a silicone spatula at the end to keep the sauce from sticking to the pan or scorching.
Remove from heat and let cool for 2 minutes. This is important because you don't want the super hot sauce to cause the cheese to curdle. Add 2 cups of the cheese, and stir gently until it melts and the sauce is smooth. Season with salt to taste.
Toss the broccoli with the warm cheese sauce until evenly coated, and then spoon into a baking dish. Top with the remaining cup of cheese. If making immediately, bake for 35-40 minutes, or until the cheese is bubbly and starting to turn golden on top. You can run it under the broiler briefly at the end for some browning if you like.
If making ahead, cover tightly with foil and refrigerate. Remove from the fridge and let come to room temperature before baking (about 2 hours.) The baking time will probably be slightly longer for the make ahead casserole.
It's important to use sharp cheese for this casserole because otherwise the flavor is too bland.
https://theviewfromgreatisland.com/broccoli-cheese-casserole-the-ultimate-make-ahead-recipe/ November 18, 2019