For the onions: Put the vinegar, oil, onions and some salt and pepper in a medium skillet over medium heat. Cook, stirring frequently, until the onions are very soft and soupy, about 15 minutes.
Stir in the chile powder and cinnamon and cook for 1 minute. Add the ketchup, 1/2 cup water, the hot sauce, 1/2 teaspoon salt and 1/4 teaspoon black pepper, and bring to a simmer. Simmer, stirring occasionally, until thickened, about 10 minutes. Transfer to a bowl and cool to room temperature before serving.
For the tomatoes: Heat the grill for high direct and indirect heat. Put the tomatoes in a bowl and toss with the canola oil and some salt and pepper. Transfer to a grill basket and grill over direct heat, tossing occasionally, until slightly charred all over and softened, about 5 minutes. Transfer to a bowl, drizzle with the olive oil, and crush lightly with a fork. Toss with the basil, then set aside.
For the sausage: Put the sausages over the direct heat and cook until slightly charred on all sides, about 2 minutes per side. Move to the indirect heat, cover, and cook until just cooked through, about 10 minutes.
Transfer the sausage to a cutting board. Grill the bread over direct heat until lightly charred, about 15 seconds, then transfer to a platter.
Slice the sausages about 1-inch thick. Top each slice of bread with some of the grilled tomatoes, a few slices of sausage and a dollop of the onion sauce. Serve immediately.