Preheat an oven to 425F degrees. Toss the cauliflower florets in olive oil and liberally season with salt and pepper. Transfer them to a 9×13 casserole dish and roast for 22-27 minutes until the edges start to brown and the cauliflower florets are just tender. Once the cauliflower is done, reduce the heat to 400F degrees.
Next, make the cheese sauce. Start by cooking the bacon over medium heat in a large skillet. Cook until crispy and then remove from the skillet to drain on paper towels. Drain the excess bacon grease from the skillet, leaving any drippings and only a thin layer of grease to coat the pan.
Next, add the butter. Then, add the shallot and garlic to the skillet and cook until the shallot becomes translucent, around 3-4 minutes. Next, add the thyme, salt, pepper, nutmeg, and smoked paprika. Then, stir in the cornstarch starch until well combined. Cook for about 1 minute.
Whisk in the half and half, dijon mustard, and sour cream. Then, let the sauce simmer until thickened, around 5-10 minutes. Then, stir in 1/2 cup of the shredded parmesan cheese and 1/2 cup of the gruyere cheese. Taste the cheese sauce and adjust seasoning for taste (I typically add 1/2-1 tsp more salt).
Pour the sauce evenly over the roasted cauliflower florets. Top with reserved 1 cup shredded gruyere cheese and crispy bacon. Pro tip. I add most of the cheese; then, I add the bacon, and, then, the rest of the cheese.
Bake the casserole at 400 degrees until the cheese is melted and the sides are bubbly, around 10-15 minutes. Then, Broil the casserole for 1-3 minutes to achieve a golden crust. Once done, let the au gratin cool slightly before serving. Garnish with chives and enjoy!