In a large pot of boiling salted water, cook the macaroni until barely al dente, about 6 minutes. Drain; return to the pot.
Heat the oil in a large saucepan. Add the onion and cook over moderately high heat until softened, about 5 minutes. Add the milk and bring to a simmer.
Meanwhile, preheat the oven to 350°F Melt 6 tablespoons of the butter in another large saucepan. Add the flour and cook over moderate heat, stirring constantly, until lightly golden, about 5 minutes; remove from the heat.
Gradually whisk the simmering milk into the flour and butter mixture until smooth. Bring the sauce to a simmer and cook over low heat, whisking, until thick and bubbling, about 7 minutes. Stir in the mustard, Worcestershire sauce, salt and pepper. Add the cheeses and cook over low heat, stirring, just until melted. Fold in the macaroni until coated with sauce. Spread the macaroni in a 3-quart baking dish.
Bake for about 25 minutes, or until lightly golden and bubbling.