Slice the cauliflower in half, removing the thick center core. Cut into large chunks. Add to a food processor, break up the cauliflower into florets. Do not dump all of the cauliflower at once. You'll need to process in batches to create uniform pieces. Pulse the cauliflower, only 1-2 times. It will look crumbly with small florets through-this is perfect. Dump the mixture into a large bowl and repeat this step until you've processed all of the cauliflower.
In a large heavy-bottomed pot, warm the butter over low heat. Add the onions and saute' until soft, about 3-5 minutes.
Add the cauliflower to the pot. Increase the heat to medium and continue to cook stirring occasionally until the cauliflower begins to lose its shape and takes on a light golden color, about 5-6 minutes. Grate in the garlic and cook until fragrant, about 30 seconds. Pour in the tomatoes and red lentils. Mix until well combined.
Place the lid on top and bring the sauce to a gentle boil. Reduce the heat to low and simmer (covered), for about 30 minutes. Remove the lid and cook for an additional 15 minutes or so, until the cauliflower is tender and the lentils are broken down. The sauce should look thickened. Season with salt and pepper to taste.
When you're about ready to eat, bring a pot of water to a boil. Cook the pasta according to the package instructions. Drain, retaining about 1/2 cup of pasta water (See Note) and return to the pot. Drizzle with olive oil to coat.
Portion your hearty cauliflower sauce over the pasta, drizzle in some of the pasta water to create desired consistency and top with basil leaves and freshly grated Parmesan cheese, to serve.