Prep the cauliflower: Rinse, core, and cut into even, bite-size florets. Pat dry so they sauté instead of steam.
Brown the sausage: Heat a large skillet or Dutch oven over medium-high. Add sausage and cook, breaking it up, until browned with crispy edges, 6–8 minutes.
Transfer to a plate, leaving about 1 tablespoon of fat in the pan.
Soften the aromatics: Add olive oil or butter if the pan looks dry. Stir in onion and a pinch of salt. Cook until translucent, 3–4 minutes.
Add garlic and red pepper flakes; cook 30 seconds until fragrant.
Cook the cauliflower: Add florets and Italian seasoning. Sauté 3–4 minutes to get some golden spots. Season with a little salt and pepper.
Deglaze: Pour in chicken broth, scraping up browned bits.
Reduce heat to medium, cover, and steam until cauliflower is just tender, 4–6 minutes. You want a little bite left.
Make it creamy: Stir in heavy cream and Dijon. Simmer uncovered 2–3 minutes to slightly thicken.
Taste and adjust salt and pepper.
Add cheeses: Lower heat. Stir in Parmesan until melted and smooth. Fold in mozzarella or provolone until just melty and the sauce clings to the cauliflower.
Return sausage: Add the browned sausage and any juices back to the pan.
Toss to coat everything in the sauce. If using lemon zest and juice, add now for brightness.
Finish and serve: Sprinkle with chopped parsley or chives. Top with extra Parmesan and black pepper.
Serve hot with crusty bread or over rice, pasta, or mashed potatoes.