Drizzle a bit of olive oil in a large saucepan. Add the bacon and set the pan over medium heat; cook, stirring occasionally, until brown and crisp, 8 to 10 minutes. Remove from the pan and drain on paper towels. Do not discard the bacon fat: Reserve that deliciousness!
Add the butter and onion to the pan with the bacon fat; season with salt and cook until the onion is soft and aromatic, 4 to 6 minutes. Add the flour and cook, stirring frequently, until the mixture looks like wet sand, about 3 minutes.
Slowly whisk in the milk, mustard and a few shakes of Tabasco. Season with salt and bring to a boil, then reduce the heat to low. Simmer until the mixture is slightly thicker than heavy cream, 6 to 8 more minutes.
Meanwhile, bring a large pot of well-salted water to a boil. Add the pasta and cook 1 minute less than the instructions on the package suggest. Taste it: It should be toothsome, with just a little nugget of hard pasta still in the center-this is al dente. Drain the pasta.
Add the Cheddar, fontina and Parmesan to the milk mixture and whisk to combine. Taste and adjust the seasoning, if needed, adding a little more milk if the mixture seems too thick. Stir in the cooked bacon and pasta. The mixture should be very creamy and flavorful. Serve immediately. (If making ahead, transfer to a baking dish or ramekins, then reheat in a 375 degree oven.)