In a 2- to 3-quart pan, mix sugar, cornstarch, and flour. Stir in the buttermilk, then set the mixture over medium heat and stir often until simmering, 10 to 12 minutes. Continue simmering, stirring often, 2 minutes longer.
Whisk half the buttermilk mixture into the eggs, then return both to pan, along with lemon peel, lemon juice, and butter. Whisk over medium-low heat until pudding reaches 160° on an instant-read thermometer and very thickly coats a spoon, 4 to 6 minutes; do not boil.
Spoon pudding into bowls or heatproof glasses. Serve warm or cool, with whipped cream if desired.