Heat the olive oil in a large skillet over medium-high heat. Add the ground turkey and brown it for 3–4 minutes, breaking it into small crumbles as it cooks — it can stick more than sausage, so keep it moving. Add the diced onion and continue cooking until the meat is fully cooked through, about 3–4 minutes more. Add the minced garlic and fennel seeds and cook for 1 minute until fragrant. Drain off any excess liquid, then transfer the cooked mixture to your slow cooker.
Add the crushed tomatoes, diced tomatoes, Italian seasoning, oregano, basil, salt, black pepper, red pepper flakes, and water to the slow cooker with the cooked turkey mixture. Stir everything together thoroughly to combine the spices and distribute them evenly throughout the sauce. This flavor-building step ensures the seasonings bloom properly during the long, slow cooking process.
Cover the slow cooker and cook on high for 3 hours or on low for 6 hours. This extended cooking time allows the flavors to meld together and deepens the tomato sauce. I prefer the low setting when I have the time — it results in a richer, more developed flavor that tastes like it's been simmering all day.
Add the uncooked ziti directly to the hot sauce and stir well, pressing the pasta down into the liquid so it's fully submerged. Cover and cook on high for 15–25 minutes, stirring once halfway through, until the pasta is tender. Check for doneness starting at 15 minutes — you want it creamy, not mushy.
Turn off the heat once the pasta is tender. Sprinkle the freshly shredded mozzarella evenly over the top and cover the slow cooker. Let it rest for 5 minutes — the residual heat will melt the cheese into creamy pockets throughout the dish. I always use freshly shredded cheese instead of pre-shredded because it melts much more smoothly without the anti-caking additives.
Stir gently to distribute the melted cheese throughout the ziti, then serve immediately while hot and creamy. The dish is best enjoyed fresh from the slow cooker.