Preheat broiler and place a large pot of salted water over high heat to boil.
Once the water is boiling, toss in the pasta and cook to al dente, according to package directions. Drain and reserve it in the pot it was cooked in.
While the pasta is cooking, melt the butter in a large skillet over medium-high heat. Add the onion and cook until tender, 2-3 minutes.
Stir in the flour and cook for about 1 minute. Whisk in the milk, then add some salt and freshly ground black pepper along with the Dijon mustard, Worcestershire sauce and hot sauce. Simmer until thickened, 2-3 minutes. Remove the pan from the heat and stir the cheeses into the sauce in a figure-eight motion. Cover the pan and keep the sauce warm over low heat.