- Preheat the oven to 375 degrees F. Coat and 8 x 8-inch square baking pan with cooking spray.
- In a heavy bottomed 2-quart saucepan, combine 2 cups milk, half-and-half, onion, bay leaf, and peppercorns. Bring to a light boil, lower the heat, and simmer on medium-low heat for 20 minutes to allow the onion and spices to infuse into the milk. Using a strainer, strain the infused milk from the onion and spices and return the strained milk to the saucepan.
- While the milk is simmering, bring a pot of salted water to a boil. Add the elbow macaroni and cook for 4-5 minutes. (This is less time than the package directions. You want the macaroni undercooked. This prevents the pasta from becoming too mushy in the casserole.) Drain, add to a large bowl, and set aside.
- In a medium bowl, mix the remaining 3/4 cup of milk with the cornstarch. Whisk until well combined. Add half the milk mixture in the saucepan to the milk conrstarch mixture in the bowl and whisk for 1 minute. Add the milk cornstarch mixture back into the saucepan. Bring the entire mixture to a boil on medium-high heat. Lower the heat to medium and cook until thickened, about 5-7 minutes. Mixture will still be on the thin side. Reduce the heat to low and simmer 4-5 minutes.
- Remove the pot from the stove. Whisk in the dry mustard, cheeses, salt, and pepper. Add the cheese sauce to the pasta and mix well. The mixture should look soupy.
- Pour the macaroni and cheese mixture into the prepared pan. Combine the fresh breadcrumbs and olive oil in a small bowl and mix well. Sprinkle the top of the macaroni and cheese with the bread topping. Bake for 20-25 minutes until topping is light brown and macaroni and cheese is bubbly.