Preheat the oven to 425°F (220°C). Toss the cauliflower florets with 1/4 cup olive oil and a pinch of kosher salt and freshly ground black pepper on a baking sheet.
Roast the cauliflower 35–40 minutes, tossing occasionally, until caramelized and tender. Remove and let cool; this can be done up to two days ahead.
Make the breadcrumbs: pulse 1/2 loaf French bread in a food processor to coarse crumbs. Melt 4 tablespoons butter and toss with the crumbs and 1/4 cup grated Parmesan. Set aside.
Reduce oven temperature to 350°F (175°C). Cook the pasta according to package directions until al dente, then drain and set aside.
In a large oven-safe heavy-bottom saucepan over low heat, melt the remaining 8 tablespoons butter. Add 4 tablespoons flour and whisk to form a smooth paste, cooking about 1–2 minutes.
Slowly whisk in the hot milk, stirring constantly, and cook until the sauce thickly coats the back of a spoon, about 15–17 minutes.
Stir in 2 teaspoons kosher salt, 2 teaspoons garlic powder, 2 teaspoons onion powder, and 1 teaspoon smoked paprika. Add the shredded fontina and stir until melted, then stir in the remaining 1/2 cup (approx. remaining) grated Parmesan.
Add the cooked pasta and roasted cauliflower to the sauce and stir gently to combine and coat evenly.
Sprinkle the breadcrumb-Parmesan mixture evenly over the top. Transfer the pan to the oven and bake 15–20 minutes, until cheese is melted and the top is lightly golden.
Remove from oven and let rest a few minutes before serving.