2) Heat 2 tbsp of the oil over medium-high heat in a heavy-bottomed medium saucepan. Add the onions and cook until soft, 3 to 4 minutes. Add the garlic and cook for 1 minute. Add the tomato ketchup and the water and bring to a boil. Reduce the heat and simmer for 5 minutes. Add the reduced vinegar and the remaining ingredients and simmer until thickened, stirring occasionally, for 10 minutes. Puree with an immersion blender until smooth and season with salt and pepper, to taste. Pour into a bowl and allow to cool at room temperature. Sauce will keep for 1 week in the refrigerator stored in a tightly sealed container.
3) Heat the grill to high.
4) Brush the flank steak with the remaining 2 tbsp of oil and season liberally with salt and pepper. Grill until golden brown on the 1 side, about 4 minutes, turn over and grill until the other side is golden brown, about 4 minutes. Move to a cooler part of the grill away from direct heat. Baste with the sauce and turn several more times until cooked to medium-rare doneness, about 15 minutes longer. Remove from the grill to a cutting board and loosely tent with foil. Let rest 10 minutes before cutting against the grain into thin slices.
5) Put the bread on the grill, brush both sides with olive oil and season with salt and pepper. Grill the bread then remove from the grill. Top with mounds of grated Monterey Jack cheese. Put the bread slices on a piece of aluminum foil and return to the grill to melt the cheese. Transfer to a serving platter.
6) Arrange the flank steak slices on the bread and garnish with sliced spring onions before serving.