Cook the onions slowly in the butter for 8 to 10 minutes, until they are tender but not browned.
Add the flour and stir over moderate heat for 3 minutes without browning.
Off heat, beat in the boiling stock or broth and blend it thoroughly with the flour. Season to taste. Stir in the mushroom stems, and simmer partially covered for 20 minutes or more, skimming occasionally. Strain, pressing juices out of mushroom stems. Return the soup to the pan.
Melt the butter in a separate saucepan. When it is foaming, toss in the mushrooms, salt, and lemon juice. Cover and cook slowly for 5 minutes.
Pour the mushrooms and their cooking juices into the strained soup base. Simmer for 10 minutes.
(*) If not to be served immediately, set aside uncovered, and film surface with a spoonful of cream or milk. Reheat to simmer just before proceeding to the step below, which will take 2 or 3 minutes.
Beat the egg yolks and cream in the mixing bowl. Then beat in hot soup by spoonfuls until a cup has been added. Gradually stir in the rest. Correct seasoning. Return the soup to the pan and stir over moderate heat for a minute or two to poach the egg yolks, but do not let the soup come near the simmer.
Off heat, stir in the butter by tablespoons. Pour the soup into a tureen or soup cups, and decorate with optional mushrooms and herbs.