Chop the bacon and put into a large, cold stockpot. Turn heat to medium and cook the bacon, stirring occasionally, until the bacon fat is rendered and the bacon is starting to brown, about 6 minutes. Add the onions, carrots, squash, garlic, and thyme sprigs. Cook over medium heat until the onions are softened, about 8 minutes. Add the tomatoes, chicken broth, salt, black and red peppers, and bay leaves. Raise heat to high, bring to a boil then reduce heat and simmer, uncovered, for 30 minutes or until the vegetables are fork tender.
While the soup is simmering, bring a large pot of heavily salted water to a boil. Add the penne and cook according to the package directions (about 7 minutes.) Drain the pasta and rinse under hot water.
Make the croutons. Preheat oven to 400 degrees. Cut the bread into cubes (9 cubes per slice of bread). In a mixing bowl, combine the pesto and olive oil. Add the bread cubs and toss gently until the bread is fully coated. Lay in a single layer on a baking sheet and cook for 10 minutes.
Once the soup has simmered for 30 minutes and the veggies are tender, remove the bay leaves and thyme sprigs, add the pasta and beans and heat through. Add the spinach and stir into the soup. Cook just until the spinach is wilted.
To serve, ladle the soup into bowls, top with some croutons and a grating of Parmesan cheese if desired.