For the chicken: Heat 3 tablespoons olive oil in a large skillet over medium-high heat until hot. Working in batches, season the chicken with salt and cook, turning, until golden brown, 2 to 3 minutes. (Add 1 more tablespoon oil to the skillet between batches if needed.) Remove the chicken to a plate using a slotted spoon.
Reduce the heat to medium; add the garlic and onion to the skillet and cook briefly. Add the chili powder, cumin, paprika and ¼ teaspoon salt; stir about 30 seconds.
Pour the tomato sauce and 2 cups water into the skillet to create a broth. Bring to a boil, then simmer until slightly reduced, about 8 minutes. Return the chicken to the skillet; continue cooking until the sauce is thickened, about 15 more minutes.
Let the chicken cool slightly. Set aside 3 cups for the tostadas; divide the rest among freezer bags and freeze for another use.
For the tostadas: Smear 2 tablespoons beans on each tostada shell; top with some chicken, tomatoes, sour cream and cabbage. Sprinkle with cilantro. Serve with hot sauce and lime wedges.