This is a delicious Sunday Supper. Serve it with a salad of Heirloom tomatoes, olive oil and salt.
Place the bread in a single layer in a shallow dish. Pour 2 1/2 cups milk over the top. Let soak until the bread has absorbed the milk and becomes soft, about 30 minutes. Press the bread slices to extract the milk. Measure the milk, you should have 1/2 cup milk left after squeezing. If not, make up the difference with the additional 1/2 cup milk as needed. Set the milk and bread aside.
While the bread is soaking, trim the asparagus, removing the woody ends. Cut the stalks on the diagonal into thin slivers each about 2 inches long and 3/8 of an inch thick. Arrange the slivered asparagus on a steamer rack and place over gently boiling water. Cover and steam until barely tender, 2 or 3 minutes, or plunge into boiling water until tender when pierced with a fork. Immediately place the asparagus under cold running water until cold. Drain and set aside.
Preheat an oven to 350 degrees. Butter a 3-4 quart mold—a souffle dish works well.
In a bowl beat together the eggs, salt, pepper and the 1/2 cup milk until well blended. Layer one-third of the bread in the prepared dish. Set 6 or 8 asparagus slivers aside and top the bread layer with half of the remaining asparagus. Spread one-third of each of the cheeses over the asparagus.
Repeat the layers, using half of the remaining bread, all of the remaining asparagus, and half of the remaining cheese. Arrange the remaining bread on top, spread the remaining cheese over it, and garnish with the reserved asparagus slivers. Pour the milk-egg mixture over the layers and then dot with the butter.
Bake in the preheated oven until the top is crusty brown and a knife inserted in the middle of the pudding comes out clean, about 45 minutes.