In medium pot, heat water for pasta. Add 1 T of the salt to water. Once boiling, add pasta and cook according to package. When pasta is done, strain, rinse with cold water, and set aside. Note: While pasta is cooking, turn on broiler.
Meanwhile, in a dutch oven or large pot, heat butter on low-medium heat. Once melted, add flour, mustard powder, and the remaining 1/2 T salt. Whisk together until well combined (this is your roux). Slowly, add milk to the roux, stirring constantly. Turn heat up to medium. Whisk mixture frequently until lumps go away. Then stir constantly for 5-ish minutes, until you sauce is as thick as you'd like. Stir in 2 1/2 cups of the cheese until cheese is melted.
Cook broccoli in microwave according to package. Add pasta, cooked broccoli and ham to the cheese sauce. Mix together.
Pour mixture into 9x13 casserole dish. Sprinkle casserole with bread crumbs and the remaining 1/2 cup of the cheese. Put dish on top rack of oven and broil for 2-4 minutes.
Video
Notes
Save time by buying pre-diced ham and pre-shredded cheese. Plus, I would recommend buying frozen broccoli in the microwave-steamable bag. Other good frozen veggies are peas or a veggie medley (like peas, corn, green beans).
Monitor the roux. You don't want your butter to burn. Just make sure the burner isn't too hot and that you're constantly whisking/stirring.
Use milk that's cooler than the roux. As long as the milk is a little cooler than the roux and you add it very gradually, the mixture won't separate or get lumpy.
Add milk slowly, stirring the whole time. This way the sauce won't lump, stick to the bottom of the pan or burn. And again, make sure the temp isn't too high.
Broil with caution. Some broilers (like mine) will scorch something after 2-3 mins. Check how powerful yours is. Another idea is to pop the dish into the oven at a very high baking temp instead of broiling. Just make sure your dish is oven and/or broiler safe.
Make extra sauce to pour on your leftovers. I can't recommend this enough!