In a small saucepan, whisk together the milk, flour, and ¼ cup water until smooth. Place over medium heat and cook for 2 to 4 minutes, whisking frequently, until the mixture turns into a thick paste (like mashed potatoes). Remove from the heat and whisk until very smooth.
Transfer the mixture to the bowl of a stand mixer. Let it cool for 15 minutes until it’s just barely warm.
For the Milk Bread:
To the same bowl with the cooled tangzhong, add the flour, warm milk, sugar, salt, yeast, and 1 of the eggs. With a rubber spatula, scrape the tangzhong from the bottom of the bowl and stir the mixture together to create a shaggy dough.
Place the bowl on the stand mixer and attach the dough hook. Knead on low speed for 5 minutes until the dough is combined and starts to ball up around the hook. Scrape down the sides and bottom of the bowl.
Mix for another 5 minutes on low speed. While mixing, add 1 to 2 pieces of butter at a time. Scrape the sides of the bowl as needed so that the butter is fully incorporated between each addition.
Once all of the butter has been added, continue to mix on low speed for another 5 minutes until the dough is cohesive, smooth and balls up around the dough hook. (Some of it may still stick to the side of the bowl, but some should ball up around the hook).
Scrape the dough into a ball and lightly oil the top of the dough and sides of the bowl. Flip the dough over, then cover the bowl with plastic wrap and let it rise in a warm, draft-free spot (75°F) for 40 to 50 minutes, until doubled in size.
Once the dough is risen, lightly grease a 9x4x4-inch Pullman loaf pan or a 9x5-inch loaf pan with butter or baking spray.
Punch down the dough and turn it out onto a lightly oiled work surface. Divide the dough into 3 equal pieces (235g each). Stretch and shape each piece into a rectangle about 10x6-inches and ¼-inch thick. Fold each long side into the center of the rectangle so that both sides meet in the middle. Pinch the seam where the two sides meet. Press and stretch the rectangle to be the width of the baking pan that you are using.
Beginning with the short end closest to you, roll each dough piece into a thick log. Place the logs width-wise, side by side, seam side down in the prepared pan. Cover the pan with plastic wrap and let rise in a warm, draft-free spot (75°F), until doubled in size, 30 to 40 minutes.
After 15 minutes of proofing, preheat the oven to 350°F.
Once the loaf has finished rising, in a small bowl, whisk the remaining 1 egg with 1 tablespoon of milk or water until smooth. Brush the top of the risen loaf with the egg wash.
Bake for 32 to 35 minutes until golden brown on top. Let cool for a few minutes in the pan, then remove and cool on a wire rack until just warm before slicing.
Notes
Use room temperature eggs and butter: They are easier to blend into a cohesive dough.
Weigh the flour: Weighing flour with a scale is the easiest way to avoid accidentally using too much. If you don’t have a kitchen scale, fluff the flour up in its container, spoon it into your measuring cup, and level off the top with a knife.
Weigh the dough. Before dividing the dough into three pieces, pop it onto a scale so you know exactly how much the whole dough ball weighs, then divide that by three. This way, you know each piece will be the same size for an evenly risen and baked loaf.
Dough texture: The dough will feel moist but shouldn’t be sticky. You do not need to flour the surface that you roll on. If it is sticking to your counter, you can lightly oil it with nonstick spray or by putting a few tablespoons of vegetable oil on a paper towel and rubbing it onto your work surface. Use a bench scraper and moist hands to stretch and shape the dough. Adding flour during shaping can dry out the dough and inhibit the bread from being as soft and fluffy as possible.