Activate the Yeast: In a large bowl, combine the warm water, sugar, and yeast. Let it sit for 5-10 minutes until foamy.
Make the Dough: Add warmed milk, melted butter, and salt to the yeast mixture. Stir to combine.
Add Flour Gradually: Gradually add 3 cups of flour, mixing until a shaggy dough forms.
Knead the Dough: Knead for 5-7 minutes, until smooth and elastic.
First Rise: Place dough in oiled bowl, cover, and let rise in a warm place for about 1 hour, or until doubled.
Caramelize the Onions: Melt 2 tablespoons of butter in a large skillet over medium-low heat. Add sliced onions and cook for 45-60 minutes, until deeply golden brown and caramelized.
Add Flavor to Onions: Stir in brown sugar and balsamic vinegar. Cook for 5 minutes, until vinegar has evaporated. Cool slightly.
Punch Down the Dough: Gently punch down the dough to release air.
Divide and Shape: Divide dough into 12 equal pieces.
Fill the Buns: Roll each piece into a circle. Place a spoonful of caramelized onions in the center.
Seal the Buns: Bring edges up and over filling, pinching to seal. Place on baking sheet lined with parchment paper.
Second Rise: Cover and let rise for 30 minutes, or until puffy.
Egg Wash: Preheat oven to 375°F (190°C). Brush buns with beaten egg.
Add Toppings (Optional): Sprinkle with desired toppings.
Bake: Bake for 18-20 minutes, or until golden brown.
Cool: Let cool on baking sheet before transferring to a wire rack.