Preheat the oven to 350°F. Lightly spray a 3-quart baking dish (or a 9x13-inch baking dish) with cooking spray.
Bring a large pot of water to a boil. Add the broccoli and boil for 4 minutes. Transfer to a colander, rinse with cold water, and drain well. Place the broccoli in a large bowl.
Meanwhile, melt 1 tablespoon butter in a medium saucepan over medium heat. Add the mushrooms and onion and cook, stirring occasionally, for about 4 minutes, until softened. Transfer to the bowl with the broccoli.
In the same saucepan, melt 4 tablespoons butter over medium heat. Whisk in the flour until smooth and cook, whisking constantly, for about 1 minute. Gradually whisk in the milk and half and half. Bring to a low simmer, whisking continuously, until the sauce thickens. Remove from heat and whisk in the salt, pepper, and Greek yogurt.
Pour the sauce over the broccoli, mushrooms, and onion in the bowl. Add the egg, 1 cup cheddar cheese, and ½ cup breadcrumbs. Stir to combine, then transfer to the prepared baking dish.
Melt the remaining 1 tablespoon butter and stir it into the remaining ¾ cup breadcrumbs. Mix in the remaining ½ cup cheddar cheese. Sprinkle the breadcrumb topping evenly over the casserole.
Cover with foil and bake for 30 minutes. Uncover and bake for 15-20 minutes more, until the topping is lightly browned and the casserole is hot throughout. Let stand for 10 minutes before serving.