Lightly butter the inside of a baking dish measuring about 28cm x 22cm, then scatter in the 2 tablespoons of grated parmesan, tipping the dish from side to side to make sure the cheese sticks to the butter.
Cook the asparagus in boiling water for 8 minutes then drain on kitchen paper. Set the oven at 200C fan/gas mark 6. Bring the milk to the boil in a small pan together with the bay leaf and onion. Turn off the heat and let it sit for a few minutes.
Melt the butter in a small, heavy-based saucepan, stir in the flour and leave over the heat for two or three minutes, stirring almost continuously. (You can chuck the bay and onion at this point – they have done their work.)
Stir in the warm milk, gradually at first, then a little faster, till you have a thick sauce. Let it come to an enthusiastic bubble, then lower the heat and let the mixture simmer for at least 5 minutes, stirring regularly, until it is thick and smooth.
If your sauce looks lumpy, then whisk fiercely until it is smooth and thick. Remove from the heat, cool briefly, then stir or whisk in the egg yolks, one at a time. Work quickly, otherwise the egg will cook before it gets stirred in.
Stir the grated cheese and chopped tarragon into the sauce. In a large bowl, using a large balloon whisk beat the egg whites till stiff and frothy. Fold them gently but firmly into the cheese sauce, then immediately scrape into the buttered dish.
Place the spears of asparagus on top of the cheese sauce, then scatter the grated parmesan over. Bake for 25 to 30 minutes till puffed and golden.