Make the Tangzhong: combine flour and water in a pan and heat it on medium heat, constantly mixing until a paste forms. Transfer to a bowl and let cool completely.
Warm the milk and dissolve in the sugar. The mixture should be warm but not too hot to the touch. Sprinkle yeast on top and set aside for 5 minutes for the yeast to bloom.
Combine flour and salt in a bowl. Scramble an egg and add to the cooled tangzhong, then add the yeast mixture followed by the flour mixture. Mix and knead until a dough ball forms. It should be pretty sticky but cleans from the side of the bowl. Add butter and squeeze it into the dough. The dough will come apart but will come back together-- continue to knead until a smooth elastic ball forms. ~10 minutes by hand. Lightly oil the dough, cover and let rise ~1 hr or until the dough has doubled.
Once doubled, transfer the dough onto a lightly floured work surface. Divide the dough into 4 even pieces and roll into tight balls. Place it on a lined baking tray, cover with plastic wrap and let rise for 1 hour.
Preheat oven to 350F. Make the egg wash by beating egg and water together. Brush the top of the buns with the egg wash, sprinkle with with sesame seeds. Bake for about 15 minutes or until the top is golden brown.
Let cool for about 5 minutes on the baking sheet. Enjoy warm or room temperature. Store in an airtight container or zip top bag for up to 5 days at room temperature, longer in the fridge.