Preheat the oven to 425°F. Line a rimmed baking sheet with parchment paper and lightly grease an 8x8-inch baking dish.
Add the cauliflower florets to a large bowl. Drizzle with olive oil, ½ teaspoon salt, and ½ teaspoon black pepper. Stir to coat. Spread on the baking sheet and roast for 15 minutes, until just fork-tender. Set aside and lower the oven temperature to 400°F.
Melt butter in a medium saucepan over medium heat. Add the shallot and cook about 3 minutes, until softened. Add the garlic and cook 30 seconds more. Whisk in the flour, 1/2 teaspoon salt, 1/2 teaspoon black pepper, and nutmeg. Slowly whisk in the heavy cream, milk, and lemon juice. Continue whisking until slightly thickened, about 1 minute. Remove from the heat and stir in 2 tablespoons Parmesan and all the Gruyère until smooth.
Add the roasted cauliflower to a large bowl. Pour the sauce over top and stir gently to coat. Transfer to the prepared baking dish.
In a small bowl, combine the Panko breadcrumbs, remaining 2 tablespoons Parmesan, and 1 tablespoon melted butter. Sprinkle evenly over the top.
Bake, uncovered, for 15 minutes, until golden and bubbling. Let stand 5 to 10 minutes for the sauce to set, then serve warm.