In a large bowl, whisk together the flour, instant yeast, salt, sugar, and baking powder. Add the 4 tablespoons of oil, softened butter, lukewarm milk, and lukewarm water. Mix with a spoon or your hands until a shaggy dough forms.
Turn the dough out onto a lightly floured surface. Knead for 8-10 minutes, until the dough is smooth, soft, and elastic. It should spring back slowly when poked.
Lightly oil the bowl you used earlier. Form the dough into a ball, place it in the bowl, and turn to coat it lightly with oil. Cover the bowl with a clean towel and let it rise in a warm, draft-free place for 45 to 60 minutes, or until doubled in size.
While the dough rises, prepare the filling. Heat 1 tablespoon of oil in a skillet over medium heat. Add the chopped onion and cook until softened, about 5 minutes. Add the garlic and cook for another minute until fragrant.
Add the shredded chicken, soy sauce, hoisin sauce, and sesame oil to the skillet. Stir to combine and cook until everything is heated through. Remove from heat and stir in the sliced scallions. Set aside to cool completely.
Once the dough has risen, punch it down gently. Transfer it to a clean surface and divide it into 12 equal pieces. Roll each piece into a ball.
Working with one ball at a time, roll it out into a 4-inch circle. Place about 2 tablespoons of the cooled chicken filling in the center. Gather the edges of the dough up and over the filling, pinching them together tightly to seal the bun.
Place the bun seam-side down on a baking sheet lined with parchment paper. Repeat with the remaining dough and filling, spacing the buns about 2 inches apart. Let the shaped buns rest for 15 minutes. Meanwhile, preheat your oven to 375°F (190°C).
Brush the tops of the buns with the beaten egg and sprinkle with sesame seeds. Bake for 12 to 15 minutes, or until they are deep golden brown. As soon as they come out of the oven, brush the tops with melted butter. Let cool slightly before serving.