Heat 2 tablespoons olive oil in a medium, heavy pot with a tight-fitting lid over medium heat. Add onion and garlic; cook, stirring, until soft, 4–5 minutes; do not brown. Add rice and salt; stir to coat.
Add 4 cups water and saffron. Bring to a full boil; then reduce heat to low, cover, and cook for 40–45 minutes, until all liquid is absorbed. Let sit, covered, for 5 minutes, and then fluff with a fork.
Preheat grill. Brush all vegetables with olive oil and sprinkle with salt. Place asparagus crosswise on grate and grill until charred and just cooked through, 3–5 minutes; cool and cut into 1-inch chunks. Grill zucchini cut side down until golden brown, 4–5 minutes. Turn and repeat, until just cooked through; cool and cut into bitesize pieces. Grill peppers until blackened on all sides; then transfer to a paper bag and close to steam for 20 minutes. Peel with your hands, core, and cut into bite-size pieces.
Transfer rice to a large serving bowl and season to taste with salt and pepper. Stir in grilled vegetables. Drizzle with remaining 1 tablespoon olive oil and sherry vinegar; toss. Stir in parsley and add more salt and pepper if needed.