In a stand mixer with a dough hook, combine flour, sugar, yeast, and salt. Add the milk, egg + yolk, and all the cooled tangzhong. Mix on low for 2–3 minutes until no dry flour remains. You may need to pause and scrape the bowl or press in any dry flour by hand. The dough will feel firm and slightly dry at this stage — this is normal.
Increase to medium speed and mix for 5–6 minutes until the dough is firm, elastic, and tacky.
Add the butter 1–2 tablespoons at a time, mixing until each addition is fully incorporated before adding the next. Scrape bowl/hook as needed. Once all butter is added, mix 6–10 minutes on medium speed until the dough is smooth and glossy. It should stretch thin and translucent before tearing (a soft windowpane).
If the dough hook struggles to incorporate the butter (common with smaller batches or rye dough), switch temporarily to the paddle attachment to fully emulsify the butter. Once incorporated, switch back to the dough hook for the final knead.
Shape the dough into a ball and place in a lightly greased medium bowl. Cover with plastic wrap. Then, choose one of the following rise options:
Same-Day (Faster): Let dough rise at room temperature for 1½ to 2 hours, until slightly puffy. Turn dough out and press into a flat rectangle. Wrap tightly in plastic wrap and freeze for about 30 minutes, until firm and well chilled (not frozen solid). Do not freeze much longer than 30 minutes — if you're not ready to roll yet, transfer the dough to the refrigerator instead to prevent it from freezing through.
Overnight (Preferred): Let dough rest (covered) at room temperature for 1 hour to kickstart fermentation. Then turn out the dough, press into a flat rectangle, wrap tightly in plastic wrap, and refrigerate overnight (8–24 hours).
Tip: Shaping into a clean rectangle here makes rolling later much easier.
Melt butter in a large skillet or Dutch oven over medium heat.
Stir in the onions, salt, and a pinch of sugar. Top with ½ cup (120 ml) water and cover for about 10 minutes.
Remove the lid and continue cooking 20–30 minutes, stirring frequently and adding small splashes of water as needed to deglaze. Cook until deeply golden brown and jammy, with no visible liquid remaining.
Measure out ¾ cup of the onions, mix with the mustard, and set aside to cool to room temperature. Save any remaining onions for other use.
Line and grease an 8.5 x 4.5 inch (22 x 11 cm) loaf pan with parchment paper, leaving a bit of overhang on the long sides for easy removal after baking.
On a lightly floured surface, roll the chilled dough to about 10 x 20 inches (25 x 50 cm), long side facing you.
Spread the cooled onions evenly in a thin layer, leaving a small border on each side.
Roll up tightly from the long, 20-inch (50 cm) side, gently pulling the dough toward you as you roll to eliminate air pockets. Flip the log seam-side up and firmly pinch the seam closed along the entire length to fully seal.
Gently roll the log back and forth to even the thickness and slightly lengthen. Trim the ends for a clean finish.
Cut the log in half, dividing into two equal pieces.
Place the two logs side by side and twist them together 3–4 times, pinching the ends to seal and twisting in opposite directions to tighten.
Place into the prepared loaf pan and gently press down to settle the loaf evenly into the pan.
Cover and let rise in a warm spot for 1.5–2 hours, until puffy.
Tip: Take a before/after photo to help gauge rise.
Once risen, brush with egg wash on all exposed surfaces and top with a sprinkle of sesame and caraway seeds.
Bake for 50–55 minutes, placing the pan on a baking sheet. Tent with foil after 25–30 minutes to prevent over-browning. Internal temp should read 195–200°F (90–93°C).
Let cool for at least 1 hour before slicing to allow the crumb to fully set.
Wrap tightly once cooled and keep 2–3 days at room temp, or freeze for longer storage.