Bring a large pot of water to a boil. Season generously with salt (it should taste like the sea). Set a bowl of ice water near the stove. Add the beans to the boiling water (make sure you do not overcrowd the beans, otherwise they will turn gray. Cook them in separate batches, if necessary). Cook until just tender, about 4 minutes. Remove with a slotted spoon and plunge into the ice water to stop the cooking. When cooled, strain and set aside.
Check the amount of reserved milk from the onions. You should have 4 cups. (You may have to either remove some or add more to equal this amount.)
In a heavy-bottomed medium (4- to 6-quart) saucepan, melt 4 tablespoons of the butter over medium heat. Add flour and mix well with a wooden spoon to make a roux. Cook, stirring frequently, until the mixture is pale yellow and resembles fine wet sand, about 5 minutes. Whisk the milk into the roux a little at a time, allowing the roux to absorb the liquid before adding more. This will help avoid lumps. Bring the mixture to a boil, then lower the heat and simmer, stirring occasionally with a wooden spoon, until it has thickened, about 15 to 20 minutes. Remove from heat, season with salt and pepper, and set aside.
Place a large (12- to 14-inch) skillet over high heat for several minutes. When hot, add the remaining 2 tablespoons of butter and immediately follow with the sliced mushrooms (even before the butter has completely melted. The butter will continue to melt, and adding the mushrooms right away keeps you from burning it).Sauté the mushrooms over high heat until lightly browned, about 5 to 7 minutes (you need to leave them alone to sear, but also stir occasionally so they cook evenly). Season with 1 teaspoon salt and ¼ teaspoon black pepper.
Stir the milk mixture into the pan with the mushrooms. Reduce heat to medium and cook for 5 minutes to blend the flavors. Season with 1/2 teaspoon salt and ¼ teaspoon black pepper.