Bring a large pot of salted water to boil and cook penne according to package directions until al dente.
During the last 3 minutes, add broccoli florets to the pasta water. Reserve 1 cup starchy pasta water before draining.
Heat olive oil and butter in a large skillet over medium-low. Cook onion for 4–5 minutes until softened, then add garlic and cook for another 30 seconds until fragrant.
Pour in heavy cream and chicken broth, simmer gently for 2–3 minutes, watching for small bubbles. Remove from heat.
Whisk in Parmesan and mozzarella off heat, seasoning with Italian seasoning, garlic powder, salt, pepper, and red pepper flakes.
Add drained pasta and broccoli, tossing with tongs. Fold in shredded chicken, and add reserved pasta water 2 tbsp at a time until glossy. Stir in a cold knob of butter before serving.
Notes
For best results, use fresh Parmesan for melting and whole-milk mozzarella for richness.