Add the oil and butter to a skillet over medium heat. Add the onions, thyme, and a pinch of kosher salt. cook, stirring often, for about 20-45 minutes, depending on how brown you want the onions.
In the bowl of a stand mixer, combine the flour yeast, sugar, salt, and onion powder. Mix. Add the warm milk and 3/4 of the diced cooked onion and mix until combined. Reserve the rest of the onion for topping the buns before baking.
Knead on medium-low for about 4-5 minutes, or until you have a smooth dough. Add flour by the tablespoon as needed. The dough should come together in a ball away from the sides of the bowl but will still be very sticky on your hands. You should be able to shape it into a ball with a bit of work. If it’s all over your hands, add more flour by the tablespoon.
Place the dough ball back into a clean bowl and cover with plastic wrap and a towel and let sit somewhere warm to rise for about 30-60 minutes, or until doubled in size.
Punch dough down and lightly grease a 9 x 9 pan.
Place dough on a lightly floured counter. Divide the dough into 9 even pieces, about 100 grams each. Shape each portion into a ball by cupping your hand over the top and rolling in circles until the ball is smooth.
Place the dough balls seam side down into the pan. Let rise, covered with a towel for another 30-60 minutes until almost doubled in size.
Preheat oven to 400°F (200°C). Brush the top of the dough with the egg wash. Divide the remaining onions over the tops of the buns.
Bake for about 20-25 minutes, or until buns are golden brown and cooked through.
Video
Notes
If you want simply softened and browned onions, fry them for 8-10 minutes. To caramelize them, cook them longer, adding a splash of water here and there and stirring. This will take 20-45 minutes. The onions in these photos were cooked for 20 minutes.