Add olive oil, chopped onion, ground beef, and seasonings to a large pot and saute until the meat is fully cooked and the onions are translucent. Thoroughly mix in tomato paste, saute for 2 minutes, then transfer the meat mixture to a bowl and set aside.
Use the same pot to cook pasta in boiling salted water until al dente, about 2 minutes less than package instructions. While pasta is cooking, warm the milk in a separate pot.
Drain pasta once cooked,
Return the empty pot to the stove over medium heat and add butter. When butter melts and foams, add flour and whisk until darkened slightly, 1 to 2 minutes. Add mustard powder and whisk to combine.
Slowly whisk in the warm milk and bring to a boil, then reduce heat to medium and cook, stirring consistently to prevent the flour from burning or overcooking, for about 3 – 4 minutes.
Reduce heat to low and add cheese in 3 batches, starting with American cheese. Whisk to fully combine, then follow with cheddar and Parmesan (whisk to fully combine after adding each cheese). Season with 1 teaspoon salt and ½ teaspoon pepper.
Fold the meat mixture into the cheese sauce, then fold in the pasta, and serve.
