Cook the macaroni in a large pot of boiling salted water until done, about 5 - 7 minutes. Drain and toss with 2 tablespoons butter; set aside.
Heat the oven to 350ºF.
Coat a large baking dish with 1 tablespoon butter and set aside.
Put the milk into a saucepan and add the onion, garlic, bay leaf, thyme and mustard. Warm over medium low heat until the milk starts to steam, about 10 minutes. Remove from the heat and let the flavors infuse while you make the roux.
In a large pot over medium heat add 2 tablespoons butter and flour. Cook, stirring for about 2 - 3 minutes; don't let the roux color.
Strain the infused milk onto the roux, whisking constantly to avoid lumps and fold in Cholula Original. Cook, stirring often, for about 5 minutes until the sauce is thick.
Remove from the heat and add 1/2 the grated Cheddar, Gruyere and Fontina and 1/2 the Parmesan; stir until it is melted and smooth. Taste and adjust seasoning with salt and pepper.
Pour over the macaroni, add the remaining cheese (save one cup) and mix until well blended. Put this into the prepared baking dish.
Sprinkle the remaining cup of cheese evenly over the top. Bake until the top is golden and crusty, about 25 - 30 minutes.