To a large pot, cover cubed butternut squash (fresh or frozen) with 1 1/2 cup water. Simmer over medium heat, until squash is tender about 10-15 minutes. (If using frozen squash, it will be tender at about 10 minutes, if fresh, it will be tender closer to 15 minutes. Do not overcook). Turn off the heat and transfer tender squash to a blender.
To a blender, add butternut squash, sage, thyme, vegetable broth, salt and pepper. Puree until smooth and creamy. Set aside. Meanwhile, cook your pasta according to package directions, al dente. The pasta will continue to cook once you add it back to the puree, so cook to al dente to avoid overcooking.
To the same pot you used to simmer squash, melt butter or ghee. Add garlic, and cook, stirring frequently, until fragrant, about 2-3 minutes. Whisk in tapioca starch until lightly browned, about 1 minute. Gradually whisk in almond milk, butternut squash puree and Dijon mustard. Bring to a boil; reduce heat and simmer, stirring occasionally, until reduced and slightly thickened, about 3-4 minutes.
Add the cooked cooked elbow macaroni, grated cheddar, and Parmesan cheese. Stir until the pasta is evenly combined and the cheeses are melted. Top with additional Parmesan if desired.