Preheat oven to 400 degrees F.
In a large saute pan over medium-high heat, add 1 tablespoon of the olive oil and butter. When the butter foams, add the onions and season with salt and pepper. Stir to coat. Cook for 8 to 12 minutes, stirring only occasionally until they get golden. Let cool.
Tear 2 pieces of aluminum foil that are large enough to wrap the fish in. Layer them, 1 sheet on top of the other. Fold up all sides of the foil so that it resembles a little aluminum boat. Into the boat pour the remaining 2 tablespoons of olive oil and spread it around. Next, lay the potatoes in the boat in 1 layer, making sure they make contact with the oil. Season them with salt and pepper.
With a sharp knife make slashes in the flesh of the fish about 1 1/2 inches apart, almost to the bone, and season with salt and pepper. Repeat on the other side of the fish. Lay it on top of the potatoes. Spoon the Mojo Verde on top of the fish. Lay the tomatoes on top of that, then spoon a little more Mojo Verde on the tomato slices. Next spoon on the caramelized onions. Pour the wine around the fish.
Fold up the foil to seal, set it on a sheet pan, and roast for about 1 hour or until cooked through. Remember that cooking times can vary significantly, depending on the thickness and type of fish, but it can be kept warm and retain its moisture for up to 30 minutes if kept wrapped. Serve with lemon wedges and extra Mojo Verde on the side.
Preheat oven to 350 degrees F. On baking sheets, roast the peppers and tomatillos for 15 to 20 minutes. Remove and let cool.
Puree all of the ingredients until the mixture is fairly smooth. Refrigerated, this will keep up to 1 month.