In a large saucepan, heat 2 tablespoons of olive oil over medium heat. Add onions and saute for 5 minutes. Add wine, beef broth, thyme and 1bay leaf. Boil until liquid is reduced by 1 cup, about 35 minutes. Strain sauce into a small saucepan.
Preheat oven to 350 degrees F. Place orzo on a rimmed baking sheet. Bake until golden brown, for about 20 minutes.
Heat 2 tablespoons of oil in another heavy large saucepan over medium-high heat. Add shallots. Saute for 4 minutes. Add mushrooms. Saute until golden, about 10 minutes. Add orzo, chicken broth, and 1 bay leaf. Bring to a boil. Reduce heat to medium-low. Cook uncovered until orzo is tender and broth is absorbed, while stirring often, about 20 minutes. Add cream and tarragon. Simmer for 5 minutes, stirring occasionally. Season with salt and pepper.
Heat 3 tablespoons oil in a heavy large nonstick skillet over medium-high heat. Sprinkle salmon with salt and pepper. Add to skillet and saute just until cooked through, about 3 minutes per side.
Bring sauce to simmer. Add butter, whisk just until melted. Season with pepper. Spoon orzo onto 6 plates. Place salmon fillets on top of orzo. Serve with sauce.