Preheat oven to 350 degrees (if baking).
Prepare macaroni according to directions on box, removing from the heat about 1 minute before recommended "al dente" cook time.
Check macaroni around the 5 minute mark. You want it to have a bit of bite to it. If making GF noodles, check around 4 minutes.
Drain noodles and set aside.
While noodles are cooking, melt butter in a large, oven safe skillet or dutch oven. over medium heat
Slowly add corn starch while stirring constantly with a whisk.
Keep stirring for about 1 minute until the roux becomes bubbly.
Add milk, a little at a time, until sauce becomes thick (you want the consistency of gravy). Add more milk if necessary. If it gets too thin, you can mix a little corn starch with some milk and add it to the mixture to thicken.
Add dry mustard, salt and pepper to taste.
Add cooked macaroni to the sauce. Stir well to coat.
Add ham and peas and stir to combine.
Add cheese (reserving a little if you want to add cheese to the top as a topping).
If you want a creamier mac and cheese (not baked) reduce heat and cook on stove top until noodles are cooked through. You may need to add a little milk as needed.
To bake, add reserved cheese to the top and place in pre-heated oven for 25-30 minutes or until cheese topping becomes bubbly and golden-brown. (see notes above)
Remove from oven and allow to cool for about 3-5 minutes before serving.