PREPARE CUSTARD FILLING (can be done the day before):
Whisk egg, sugar, and salt in a bowl. Gradually add in milk as you are whisking. Sift in the flour and milk powder into the mixture and whisk again. There will be some lumps. Don't worry
Put the saucepan over low heat. Add butter and continue to stir until butter started to melt and continue to cook until the custard thickened. Remove to let the custard cool down and it will thicken further. Let it cools down completely. Cover and refrigerate if not using on the same day
When the custard is firm, you can roll them into 8 large balls for easier wrapping later
PREPARE TANG ZHONG:
Place milk and the bread flour in a small saucepan. Whisk until there is no more lumps. Cook this mixture over medium heat until it is thickened, about 5 minutes or less. Remove from the heat and let it cool down completely
MAKE THE DOUGH:
Mix all the dry ingredients together in a mixing bowl. Make a well in the center and pour in the wet ingredients and the tang zhong you made earlier. Use a dough hook attachment to knead the dough until all the crumbly dough starts to come together into one mass, it may take about 2-3 minutes for this to happen. Don't be tempeted to add any liquid. You may need to stop halfway and scrap the dough off the hook and the sides of the bowl and knead again several times
Once it comes into a dough, stop the machine. The dough will not be smooth, don't worry.Cover the dough and let it rest for 20 minutes. This is an important rest that bakers refer to as an autolyse (though in our case it's a short one. Read my post above for detail)
After the rest, turn on and knead the dough again and knead for 1-2 minutes until it is a bit smoother. Then add the salt and sugar into the dough. Continue to knead until the dough is relatively smooth. You need to stop and scrape the dough off the hook and the bowl several times during this process. I promise it's worth the effort!
Once you have a smooth dough, turn the machine back on again to knead and gradually add in the softened butter a bit by a bit. The dough will turn into a REAL sticky mess again because of the butter, just keep kneading and stop halfway and scrape the dough off the hook and bowl again and continue to knead until the butter is absorbed by the dough. IT WILL HAPPEN, don't worry! DO NOT be tempted to add any extra flour. You will get a shiny smooth dough that is very elastic. I promise! This may take about 15-20 minutes or longer to knead the dough to this stage on my kitchen aid stand mixer.
Place this dough in a lightly oiled large bowl, cover it with a clean and damp tea cloth or plastic wrap and let it rise at a warm place for about 1 hour. It may not double in size, but it will puff up some for sure.
Punch the dough down, divide into 8 balls. Cover these doughs loosely with a plastic wrap and let them rest for 15 minutes. Make sure you don't skip this part of resing the dough before shaping
Flatten one dough and roll into about 4-5-inch circle. Place one filling ball in the middle. Gather the edge of the dough to enclose and pinch to seal the bun. Place the seam side down on a baking pan lined with parchment paper and repeat with the rest of the dough. Cover with a plastic wrap or a clean kitchen towel
Let the dough proof again for another 40 minutes or until they fill up the loaf pan. Brush the top of the dough with egg wash
Sprinkle with some white sesame seeds or other seeds of your choice if you like
Preheat oven to 350 F and pop it into the oven (3rd rack from the top) and let it bake for the next 20-30 minutes depending on the oven, mine took 20 minutes. It will be golden brown on top. Remove from the oven and let it cool down in the pan for about 5 minutes and then transfer to cooling rack to let them cool down completely
Leftover buns can be refrigerated for up to one week
Wrap the buns in aluminum foil and reheat in oven or toaster oven or air fryer at 350F for about 10 minutes to warm up, or simply warm it in the microwave oven for about 1 minute or so