Cook the broccoli in boiling salted water. Remove the broccoli from the water using a slotted spoon and set aside. Cook the pasta in the same water until al dente. Drain well and keep warm.
While pasta cooks, heat butter in a large saucepan over medium heat. Add the onions and cook for 3 minutes, add the garlic and cook for 1 more minute, stirring occasionally. Add the flour, cumin, paprika, salt and pepper. Stir well.
Whisk in milk and raise heat a little to bring to a quick boil. Add the broth, mustard and heavy cream. Simmer sauce to thicken, about 5 minutes. Add the cream cheese and stir well.
Add the broccoli, cheddar and parmesan cheese and stir to combine. Drain pasta and add to the sauce.
Preheat the oven to 400F.
Transfer the pasta to individual baking casseroles and bake for 15 minutes, then turn the oven to broil and cook, 2 to 3 minutes. Serve warm.