Soak 2 cups of raw cashews in 4 cups of water overnight.
In a Dutch oven, add ground beef, onions, 1 teaspoon of salt, and black pepper. Cook over medium-high heat until beef is browned. Season with basil, fennel seeds, and Italian seasoning, and give a good mix. Then add mushrooms, garlic, and remaining 2 teaspoons of salt and cook until juices from mushrooms have evaporated. Add tomato paste, mix well to fully incorporate, and cook for 2-3 minutes. This will help get rid of the can taste. Stir in crushed tomatoes, tomato sauce, and water. Cover, reduce heat, and simmer for about 1 hour, stirring occasionally.
Meanwhile – Preheat oven to 375 degrees. Using a mandolin, slice eggplants into ¼-inch thick “noodles.” Spray two baking sheets with nonstick spray and place eggplant pieces in single layer. Season both sides of eggplant slices with sea salt. Bake for 10 minutes (until tender and beginning to brown) turning halfway through. Remove from oven and allow eggplant to cool. Can be roasted 1 day ahead and refrigerated.
Make cashew cream – Drain the soaking water. Transfer soft cashews into a blender with 2 cups of new, warm water and puree in a blender until smooth. Set aside.
Defrost frozen spinach. Drain and squeeze out all liquid (don’t be fooled, there’s a lot). Place in large bowl and break apart thoroughly. Season with a bit of nutmeg and mix well.
Assemble in a 9 x 13 glass dish. Lower oven temperature to 350 degrees. Add a layer of meat sauce (about 2 cups). Then a layer of eggplant noodles. Then gently and evenly spread a layer of cashew cream. Take half of the spinach and break up into an even layer atop the cashew cream. Repeat all steps. Then finish the top with a layer of sauce, and then a layer of cashew cream.
Bake uncovered for 30 minutes. Then switch oven to low broil setting and continue cooking for about 10 minutes.
Remove from oven and let rest for at least 30 minutes. Cut with a sharp knife and scoop out with a spatula.