Heat 1 tablespoon oil in a heavy large saucepan over medium-high heat. Add onion, celery, carrot and garlic; saute until beginning to brown, about 10 minutes. Add tomato paste and cook 2 minutes. Add white wine and simmer until liquid is reduced by half, scraping up browned bits, about 5 minutes. Add the next 7 ingredients (stock through bay leaf); simmer until mixture is reduced, about 50 minutes. Discard bay leaf. Season sauce with salt and pepper.
Preheat oven to 350°F. Sprinkle halibut with salt, pepper and cayenne pepper. Heat remaining 1 tablespoon oil in a heavy large skillet over high heat. Add fish to skillet and cook until brown, about 2 minutes per side. Transfer to a plate.
Pour off oil from skillet. Reduce heat to low. Add balsamic vinegar to skillet; simmer 1 minute. Add the tomato sauce. Whisk in butter. Season with salt and pepper. Pour sauce into a 13x9x2-inch glass baking dish. Place fish atop sauce in dish. Bake until fish is opaque in center, about 10 minutes.
Divide potatoes among 6 plates. Top potatoes with fish and sauce. Sprinkle with gremolata and serve immediately.