Bring a large pot of salted water to a boil. Cook the ziti according to package directions minus one minute (so, if it recommends 10 minute for al dente, cook it for 9). Drain and set aside.
In the meantime, heat the olive oil in a large skillet over medium. Stir in the ground beef, oregano, parsley, fennel, and a big pinch of salt and pepper. Cook until browned, about 6-8 minutes.
Pour in the crushed tomatoes and tomato sauce. Stir in the honey or sugar. Bring to a gentle simmer and cook, covered for 10-15 minutes until thickened. Taste and adjust seasonings as needed. Switch off the heat and stir in the basil, then pour in the pasta and toss until the noodles are fully coated.
In a bowl, stir the ricotta, pesto, and 1 cup of mozzarella cheese.
Transfer half of the saucy ziti into a 9 x 13 inch casserole dish. Dollop half of the ricotta overtop, then the rest of the ziti, the other half of the ricotta, and the remaining 2 cups of cheese. Bake for 15-20 minutes until browned, bubbly, and lightly crispy on the edges. If desired, switch the broiler to high for the final 1-2 minutes.