Preheat the oven to 350 degrees
In a large pot, bring enough water to a boil to cover the cauliflower florets
Add the cauliflower and boil for 7 minutes, then drain and set aside
In a saucepan over medium heat, warm the milk until it almost boils
In a separate saucepan over medium heat, warm the butter until it is melted
Gradually add the flour and whisk until smooth
Cook the mixture for 2-3 minutes, whisking constantly
Add the hot milk to the butter, 1 cup at a time, constantly whisking
Cook 10-12 minutes, until the sauce is thickened, stirring constantly
Turn off the heat and add the egg yolk and whisk until incorporated
Stir in the salt
Add the cheddar cheese and 1 cup of the parmesan cheese to the béchamel sauce and stir until the cheeses have melted
Add the cauliflower to the sauce and stir until it is evenly coated, add more salt if needed, and transfer to an oven safe baking dish
Top with remaining parmesan cheese
Bake for 20 minutes
Broil for 2 minutes or until the top is brown