Place the broccoli in a large saucepan. Cover with enough water to create a thin layer of water across the bottom of the pan (about 1 cup or so should do it; the broccoli itself will not be covered). Bring to a simmer over high heat, then cover the pan and let simmer until the broccoli is bright green and crisp-tender, 4 to 5 minutes. Drain the broccoli, then place in a bowl and cover to keep warm.
With a towel, carefully wipe the pan dry. Add the butter and melt over medium-low. Once it melts, sprinkle the flour over the top. Whisk constantly until the flour turns golden, about 1 full minute.
Slowly pour in the milk, whisking constantly to avoid lumps. Let simmer, whisking the entire time, until the sauce thickens slightly, about 3 minutes.
Reduce the heat to low. Working a small handful at a time, whisk in the cheddar cheese, allowing it to melt fully between additions (if you add too much at once, the sauce will clump). Stir in the Parmesan, salt, and mustard and cayenne (if using). Taste and adjust the seasoning as desired (I add a pinch of extra salt). Serve the broccoli warm, with the cheese sauce over the top. Or, stir the broccoli gently into the sauce and serve it mixed.
Notes
TO STORE: Refrigerate cheesy broccoli in an airtight storage container for up to 4 days.
TO REHEAT: Heat leftovers in a skillet set over medium heat or in the microwave. If you’ve refrigerated the cheese sauce separately, you can warm that in the microwave or in a saucepan set over medium-low heat.
TO FREEZE: Freeze cheesy broccoli in an airtight container or freezer bag for up to 3 months, then thaw in the refrigerator before heating.