Melt 3 tablespoons butter in a wide skillet over low to medium-low heat. Add onions, garlic, thyme sprigs, bouillon powder, and a small pinch of salt. Cook, stirring occasionally, until onions are golden brown and caramelized, about 35 minutes. Remove from heat, discard thyme sprigs, and set aside. Once slightly cooled, stir through Worcestershire sauce.
In a large nonstick pot, melt 4 tablespoons butter over medium heat. Whisk in flour and cook for 1 minute until smooth. Whisk in garlic powder, onion powder, salt, and pepper. Gradually add milk, whisking constantly until slightly thickened (1–2 minutes). Slowly add chicken broth while whisking, then bring to a gentle boil.
Once boiling, add uncooked macaroni. Stir with a wooden spoon. Reduce heat to medium-low, allowing a gentle bubble across top when not stirring. Stir often, scraping the bottom of the pot, 7–11 minutes, until pasta is just cooked (but still a bit firm) and sauce slightly thickens.
Remove from heat and add cheese a handful at a time, letting each melt before adding the next. Adjust seasoning to taste. Gently stir in the caramelized onions or spoon them over individual servings. Serve immediately and enjoy!
