Make the tangzhong by whisking the water and flour in a small saucepan until smooth. Cook over medium heat, whisking constantly, until it thickens into a paste. Set aside to cool to room temperature.
For the sesame paste, blend the sesame seeds and sugar in a small food processor until they release their oils and form a thick, sticky paste. If needed, add a little butter to help it come together.
In a bowl (or stand mixer), combine the tangzhong with the milk, egg, salt, sugar, flour, and yeast. Mix until a soft, slightly sticky dough forms.
Add the butter a little at a time, kneading well after each addition until fully incorporated.
Continue kneading until the dough is smooth, elastic and soft. This should take about 5–8 minutes in a mixer, or a bit longer by hand. If the dough feels too dry, add a splash of milk.
Place the dough in a lightly oiled bowl, cover, and leave to rise for 1–1½ hours, until roughly doubled in size.
Knock back the dough and divide it into 8 equal pieces.
Roll each piece into a square (about 15 cm), then spread a thin layer of sesame paste over it, leaving a small border around the edges.
Fold the dough in half and seal the edges. Cut 4–5 slits lengthwise, then gently twist to create a pattern.
Bring the ends together to form a round bun and pinch to seal. Place on a lined baking tray.
Repeat with the remaining dough, then cover and leave to rise again for 40–50 minutes, until puffy.
Brush with egg wash (or milk for a softer finish) and sprinkle with extra sesame seeds if you like.
Bake in a preheated oven at 180°C for 20–25 minutes, until golden brown.
Let cool slightly before serving.