In a large Dutch oven or soup pot, heat the olive oil over medium-high heat. Add the sausage and cook, breaking it into small pieces with a wooden spoon, until browned and cooked through, 6 to 8 minutes. Drain off all but about 2 tablespoons of the fat.
Reduce the heat to medium. Add the onions and cook, stirring occasionally, until softened and translucent, 4 to 5 minutes.
Add the garlic, sun-dried tomatoes, and tomato paste. Cook, stirring constantly, until fragrant and the tomato paste has darkened to a deep brick red, 1 to 2 minutes.
Pour in the white wine and scrape up any browned bits from the bottom of the pot. Simmer until the wine has reduced by about half, about 2 minutes.
Stir in the chicken broth, diced tomatoes with their juices, garlic powder, Italian seasoning, salt, and pepper. Increase the heat to high and bring to a boil, 7 to 9 minutes.
Reduce the heat so that it is simmering rapidly, but no longer boiling. Add the pasta shells and cook, stirring occasionally so nothing sticks to the bottom, until al dente, about 10 minutes or according to the package directions.
Reduce the heat to low. Add the spinach and stir until wilted, about 1 minute.
Remove the pot from the heat. Stir in the heavy cream, then add the Parmesan, a small handful at a time, stirring until melted and smooth. Stir in the basil.
Taste and adjust with more salt and pepper. Ladle into bowls and finish with extra Parmesan and torn basil.