Toss broccoli with 1 tablespoon oil in a large bowl.
Spread out on a baking sheet and roast, stirring once halfway though, until just soft and browned in spots, about 15 minutes.
Meanwhile, heat the remaining 1 tablespoon oil in a large skillet over medium heat.
Add beef and onion and cook, breaking up the beef with a wooden spoon, until the beef is browned and the onion is softened, 10 to 12 minutes.
Stir in Worcestershire, garlic powder and 1/4 teaspoon salt. Set aside.
Whisk milk and cornstarch in a large saucepan. Bring to a boil over medium-high heat, whisking often, until bubbling and thickened enough to coat the back of a spoon, 6 to 8 minutes total.
Remove from the heat and stir in Cheddar, 3/4 teaspoon salt and Balsamic until the cheese is melted.
Spread the beef mixture in a 9-by-13-inch baking dish.
Top with the broccoli and pour the cheese sauce evenly over the top.
Combine potatoes, egg, pepper and the remaining 1/4 teaspoon salt in a medium bowl.