Preheat a grill to medium high. Combine 1 sliced onion, 1/2 cup olive oil, the vinegar, garlic, lemon slices, scallions, 1 1/2 tablespoons paprika, the cayenne, rosemary, thyme and 2 teaspoons salt in a large bowl. Set aside at room temperature, 1 hour.
Spread the remaining 3 sliced onions in a large disposable roasting pan. Drizzle with 2 tablespoons olive oil and sprinkle with 1/2 tablespoon paprika and 1 teaspoon salt.
Combine the remaining 2 tablespoons olive oil and 1/2 tablespoon paprika in a small bowl. Rinse the fish and pat dry. Rub all over with the olive oil-paprika mixture. Stuff the cavity super full with the marinated onion-herb mixture, adding anything that doesn't fit to the disposable pan.
Brush the grill grates generously with vegetable oil. Sprinkle the fish on one side with 1/2 teaspoon salt; place salt-side down on the grill and cook until charred on the bottom, 4 to 5 minutes. Sprinkle with 1/2 teaspoon salt; gently flip and cook until the other side is charred, 4 to 5 more minutes. Transfer the fish to a baking sheet and let rest, uncovered, 10 minutes. Meanwhile, transfer the disposable pan with the onions to the grill. Cover and cook, stirring occasionally, until the onions begin to soften, 8 to 10 minutes.
Remove the pan with the onions and reduce the grill heat to medium (if using a charcoal grill, break up the coals to reduce the heat). Add the fish to the pan, belly-side down, making sure you don't spill the stuffing (use your hands to hold him together). Once he is settled, push more onions around him to prop him up. Add 3/4 cup water to the pan; place on the grill, cover and cook until the flesh is opaque, firm and slightly flaky, 20 to 25 minutes.
To serve, use a large spoon to pull the flesh from the bones-it will fall off easily. Serve with the grilled onion mixture.
Duff says to make sure you save the fish cheeks for your favorite friend at the table-they're sweet and tender.