1) In a large saucepan, heat 2 tbsp of olive oil over medium heat. Add onions and saute for 5 mins. Add wine, beef broth, thyme and 1 bay leaf. Boil until liquid is reduced by 240ml, about 35 mins. Strain sauce into a small saucepan.
2) Preheat oven to 180C/Gas 4. Place orzo on a rimmed baking sheet. Bake until golden brown, for about 20 mins.
3) Heat 2 tbsps of oil in another heavy large saucepan over medium-high heat. Add shallots. Saute for 4 mins. Add mushrooms. Saute until golden, about 10 mins. 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 mins. Add cream and tarragon. Simmer for 5 mins, stirring occasionally. Season with salt and pepper.
4) Heat 3 tbsp 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 mins per side.
5) 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.