Rinse the mushrooms well under lukewarm water.
Slice the onions into thin slices.
Heat the avocado oil in a large non-stick skillet over medium-high heat and add the sliced onions. Sprinkle with sea salt and sauté, stirring occasionally, until the onions begin to sweat, about 5 to 8 minutes. To speed up the process, you can cover the skillet with a lid.
Once the onions have become very soft, reduce to medium heat or medium-low heat. Continue cooking, stirring occasionally, until the onions begin turning golden-brown, about 20 to 30 minutes.
The goal is to cook the onions slowly so that they become uniformly golden brown and don't begin to burn around the edges. The key here is to start the onions on a high heat, then lower the temperature once they have softened for the remainder of the cooking process. If at any time the onions begin to stick to the bottom of the pan, deglaze the pan with a little water, broth, or wine.
Add the sliced mushrooms and cover the skillet. Cook, stirring occasionally, until much of the liquid has leached out of the mushrooms, about 5 to 8 minutes.
Once there is a good deal of liquid in the skillet, remove the lid from the skillet and increase the heat to medium-high.
Continue cooking and stirring until the majority of the liquid has evaporated. Now the goal is to allow the liquid to burn off so that the texture of the mushrooms is nice and soft. You'll know you're there once some brown bits begin sticking to the skillet.
Stir in the garlic powder, balsamic vinegar, and butter, and continue stirring until the balsamic becomes well-incorporated into the caramelized onions and mushrooms and you’re left with perfect caramelized onions.
Serve caramelized onions and mushrooms on top of your choice of steak.