Filling: Without heat, whisk sugar, cornstarch, salt, and egg yolk together in a small saucepan. Slowly whisk in the milk until mostly smooth. Move your pan to the stove and bring to a low simmer over low heat, whisking frequently (it will get a little lumpy – that’s okay). Continue to heat gently for a few minutes until you get a nice thick pudding consistency. Remove from heat and stir in butter and vanilla.
Potentially unpopular opinion? But I like to leave the WHOLE lime in the juice because the rind and pith of the lime gives a bitterness to the finished agua fresca that I think is so, so delicious. (Reminds me of this pie.) Also, since I don’t add alcohol to mine, this helps it feel slightly more like a cocktail. If you’re not a fan of any bitter flavor, just use lime juice instead of whole limes.
Using a fine mesh strainer to catch all the pulp, pour the agua fresca into a pitcher. Discard pulp.