Preheat oven to 400 degrees F. Place bread cubes on ungreased baking sheet. Bake for 8-10 minutes or until lightly golden and crisped. Set aside to cool.
Reduce oven to 350 degrees F.
In a medium Dutch oven (3 1/2 quart) heat oil over medium-high heat. Add onions and 1 teaspoon of salt. Toss well to coat. Place lid on securely, and let cook for 5 minutes, without stirring or lifting the lid. After 5 minutes lift lid carefully to pour condensation into onions; stir well. Replace lid and cook three minutes more. Stir again, cover and cook for an additional three minutes, or until onions are soft. Remove pan from heat and scoop onions into a bowl; set aside. Do not wash pan.
Meanwhile, bring chicken broth and wine to a boil over high heat. Add 1 1/2 teaspoons of salt and rotini; stir. Boil for 7 minutes. Drain well; set aside.
Return Dutch oven to stove. Melt 4 tablespoons butter over medium heat. Whisk in flour and cook until lightly golden, about 3 minutes, whisking constantly. Gradually whisk in half-and-half and milk. Bring just to a boil, whisking constantly. Reduce heat and simmer, stirring often until sauce begins to thicken, about 2 minutes. Stir in Worcestershire, remaining 1/2 teaspoon salt, and black pepper. Slowly begin to add the Monterey Jack and Swiss cheeses. Whisk until melted and smooth. Remove pan from heat and gently stir in reserved pasta and onions. Top macaroni and cheese with bread cubes taking care to cover the whole top. Sprinkle with 1 cup gruyere.
Place dish in the oven, uncovered, and bake for 25-30 minutes or until sauce is bubbly and cheese begins to brown. Let sit 10 minutes before serving.