Prep and preheat: Heat the oven to 375°F (190°C). Grease a 9x13-inch baking dish or a similar casserole dish with butter or oil.
Soften the cabbage: Bring a large pot of salted water to a boil.
Add the sliced cabbage and blanch for 3 to 4 minutes until just tender but still bright. Drain well and let steam off excess moisture. Pat dry with paper towels to avoid a watery casserole.
Sauté the aromatics: In a large skillet over medium heat, melt 1 tablespoon butter.
Add the onion and 1/4 teaspoon salt. Cook, stirring, until soft and lightly golden, 8 to 10 minutes. Add the garlic and cook 30 seconds more.
Transfer to a bowl.
Make the cheese sauce: In the same skillet, melt the remaining 2 tablespoons butter over medium heat. Whisk in the flour and cook 1 minute to form a smooth roux. Slowly whisk in the milk, a little at a time, until smooth and slightly thickened, 3 to 5 minutes.
Season and add cheese: Stir in Dijon, smoked paprika, nutmeg, 3/4 teaspoon salt, and 1/4 teaspoon pepper.
Remove from heat and whisk in 1 1/2 cups of the shredded cheese and all the Parmesan until melted and glossy.
Combine: In a large bowl, toss the blanched cabbage with the sautéed onions. If using bacon, thyme, or red pepper flakes, add them now. Pour the cheese sauce over and fold gently to coat.
Taste and adjust seasoning.
Assemble: Spread the mixture evenly in the prepared baking dish. Sprinkle the remaining 1/2 cup shredded cheese over the top.
Make the topping: In a small bowl, toss the breadcrumbs with olive oil and a pinch of salt and pepper. Scatter evenly over the casserole.
Bake: Place on the center rack and bake for 25 to 30 minutes, until bubbly around the edges and golden on top.
If you want a deeper crust, broil for 1 to 2 minutes at the end, watching closely.
Rest and serve: Let the casserole rest 10 minutes before serving so it sets and slices cleanly. Garnish with chopped parsley if you like.