Pre-heat the oven to 350 °F. Grease a 9 x 9 inch baking dish with butter and set aside.
In a small skillet, heat avocado oil until hot. While waiting for the oil to heat up, whisk the egg and arrowroot together in a medium mixing bowl. Working in batches, dip the onion into the egg/arrowroot mixture and then place into the hot oil. Cook for about 2-3 minutes on each side, or until a dark brown. Set aside on a plate lined with paper towels.
Bring a gallon of water and 2 tablespoons of salt to a boil in an 8-quart saucepan. Add the green beans and blanch for 5 minutes. Drain in a colander and immediately plunge the beans into a large bowl of ice water to stop the cooking. Drain and set aside.*See notes for recipe steps if you would rather roast the green beans.
Melt the butter in a 12-inch cast iron skillet set over medium-high heat. Add the mushrooms, 1 teaspoon salt and pepper and cook, stirring occasionally, until the mushrooms begin to give up some of their liquid, approximately 4 to 5 minutes. Add the onion, garlic and coconut aminos and continue to cook for another 1 to 2 minutes. Add the cashew cream and mix well. Add the broth and simmer for 1 minute. Decrease the heat to medium-low and add salt, pepper, onion powder, and garlic powder. Cook over low heat until the mixture thickens, stirring occasionally, approximately 6 to 8 minutes.
Season green beans with salt and pepper. Add green beans to skillet with the sauce and mix until the green beans are well covered. Taste and adjust seasoning as needed. *do not salt the green beans if you roasted them.
Pour the green beans and sauce into the 9 x 9 baking dish. Bake for 30 minutes. Remove from the oven and top with crispy shallot and bacon. Bake for an addition 15-20 minutes, or until green beans are tender and bubbly.