In a large skillet over medium heat, melt olive oil and 1/2 tablespoon butter, swirling pan to evenly coat. Add onions and cook over medium heat, stirring occasionally until onions are a deep golden brown, about 20 minutes.
Add mushrooms to pan and saute an additional 3-4 minutes or until mushrooms are softened. Transfer to a bowl and set aside.
Preheat oven to 400F. Place green beans in a steamer basket set over a pot of boiling water. Allow to steam 3-5 minutes until crisp-tender. Immediately plunge green beans into ice water to stop the cooking process and drain well.
In a large high-walled skillet, melt remaining 2 tablespoons butter over medium heat. Add garlic and saute 1 minute until fragrant. Whisk in flour and cook several minutes until golden brown. Slowly begin whisking in milk, heavy cream, and vegetable broth, mixing constantly until smooth.
Bring sauce to a simmer over medium heat, stirring occasionally until sauce is slightly thickened and bubbly. Fold in green beans and half of caramelized onions/mushrooms until evenly coated.
Scrape green bean mixture into a greased 9x13 pan or 9-inch skillet. Top with cheddar, remaining caramelized onion/mushroom mixture, and breadcrumbs.
Bake green bean casserole at 400F 25-30 minutes until top is golden-brown and casserole is bubbly. Allow to cool several minutes before serving warm. Enjoy!