Make the Tangzhong: Combine water, milk and flour in a medium saucepan. Whisk until combined and no lumps remain. Place saucepan over medium heat and cook mixture, whisking constantly, until it thickens, about 1-2 minutes. Set aside to cool.
Make the Dough: While the tangzhong is cooling, begin preparing the rest of the ingredients for the dough. Combine yeast, cardamom (if using), salt, sugar and flour in the bowl of a stand mixer. Whisk briefly by hand to combine.
Attach the dough hook to the mixer. Add melted and cooled butter, milk, egg and the cooled tangzhong (it can be slightly warm to the touch) to the dry ingredients. Mix on medium low until fully combined.
Increase mixer speed to medium and knead mixture for 3-4 minutes or until dough is slightly tacky but not sticky and clears the side of the bowl. It’s okay if it’s sticking to the bottom of the bowl slightly. Add an extra tablespoon of flour as necessary if your dough seems too sticky. You can also mix and knead the dough by hand but it will take longer, more like 8-10 minutes.
Cover bowl with plastic wrap and allow the dough to rise for an hour to an hour and a half or until 1 ½ or 2 times its original size. The time will largely depend on the temperature of your kitchen.
Meanwhile, make the Vanilla Custard Filling. Whisk egg yolks, butter, cornstarch, half and half, sugar and salt together in a medium saucepan. Place pan over medium low heat and whisk constantly until mixture is smooth and thick, about 3-5 minutes. Strain mixture through a fine mesh strainer into a clean bowl. Stir in vanilla. Place a piece of parchment paper directly on top of the pastry cream, followed by a layer of plastic wrap (this prevents the custard from forming a skin). Refrigerate until you are ready to use. (The Vanilla Custard Filling can be made 1-2 days in advance.)
Once the dough has risen, preheat the oven to 350 degrees. Line two baking sheets with parchment paper. Remove the dough from the bowl and place it onto a clean, unfloured countertop. Using a rolling pin, roll the dough until it is about half an inch thick. Cut circles out of the dough using a 3 inch biscuit cutter. Place the buns on the prepared baking sheets leaving 2 inches of space between each bun. Cover and let the buns rise for 30 minutes at room temperature. (Feel free to gather the scraps and roll them a second time to cut out more buns).
Using your thumb and fingers, create a defined well in the center of each bun. Fill each well with a heaping teaspoon of Vanilla Custard Filling.
Whisk the egg and water together for the egg wash. Brush the outside of each bun with the egg wash, taking care to avoid the custard center. Transfer buns to the oven and bake until golden brown, rotating the pans halfway through, about 18 minutes. Remove the buns from the oven and allow them to cool to room temperature.
Meanwhile, make the Icing. Whisk all ingredients together in a medium bowl until smooth. Drizzle the icing on each bun and sprinkle with coconut if desired. Serve.