Bring a large pot of salted water to a boil and cook the elbow macaroni until al dente, about 7-8 minutes. Drain and set aside.
In a saucepan over medium heat, melt 2 tablespoons of butter, then whisk in 2 tablespoons of flour and cook for 1 minute.
Gradually add whole milk to the saucepan, whisking constantly, and cook for 2-3 minutes until the sauce thickens slightly.
Stir in shredded cheddar and mozzarella cheese until melted and smooth. Season with salt, black pepper, and ground mustard, then fold in the cooked macaroni. Let cool slightly.
In a mixing bowl, whisk together flour, sugar, baking powder, baking soda, and salt.
In a separate bowl, whisk buttermilk, eggs, and melted butter together, then pour the wet ingredients into the dry and mix until just combined.
Preheat the waffle iron to medium-high and lightly grease it with nonstick spray or melted butter.
Pour a thin layer of waffle batter to cover the bottom of the waffle iron, then place a scoop of the mac and cheese mixture in the center, leaving a border.
Cover the filling with more waffle batter, close the waffle iron, and cook for 4-6 minutes until golden and crisp.
Repeat with the remaining batter and mac and cheese, serving the waffles immediately while hot.