Preheat oven to 350°F.
In a medium sized bowl whisk together 2 tbsp of the tamari, 1 tbsp + 1 tsp maple syrup, and 2 tsp of the liquid smoke. Add the coconut flakes and toss to coat. Using tongs, transfer coconut flakes to a baking sheet lined with parchment paper. Do not simply dump the bowl over, you do not want the coconut laying in excess liquid. Make sure flakes are somewhat scattered and not clumped together. Place baking sheet in preheated oven. Bake for approximately 10 minutes, removing to toss up flakes after 6 minutes. When they're done, they'll be getting dry but not burnt. Remove from oven. Pull parchment paper, with coconut, off of baking sheet and onto the counter. Coconut flakes will crisp up more as they cool.
Steam cauliflower florets for 10 minutes, or until soft. Once soft, transfer to an additional baking sheet and place in the top rack of oven to dry out, checking periodically. They'll be done when starting to brown on top.
In the same bowl used for coconut bacon, whisk the remaining tamari, maple syrup, and liquid smoke together with 1 tablespoon olive oil. Add the mushrooms, toss to coat, and set aside to marinate (at least 20 minutes).
Boil water and cook the pasta according to package directions. When pasta is done, rinse with cold water to prevent additional cooking.
When cauliflower is ready, transfer to blender with cashew milk and blend on high until smooth.
When mushrooms are down marinating, again using tongs, place on a parchment lined baking sheet and put in oven for 20-30 minutes, tossing every 10 minutes. SAVE THE MARINADE! I let my mushrooms start to get dry, but not completely crisp. I thought they'd go better in the casserole if still a little soft.
To finish your sauce, heat a large skillet over medium high heat and add the wine and then the minced garlic. If you do not care to use wine, cook garlic in a little olive oil. Sauté garlic for 2-3 minutes. Turn heat to low and add the blended cauliflower, sea salt, black pepper, dried basil, and nutritional yeast. Sauce will be very thick, and this is okay, that is how you want it. Stir well, taste, and adjust seasonings, if needed. Next, stir in tomatoes, spinach, shiitake bacon, pasta, and half of the green onions.
Add pasta mixture to a lightly oiled 13"x9" baking dish. Using a silicon spatula, pat ingredients down and smooth out, making sure casserole is evenly distributed. Cover with foil and place in oven for about 30-35 minutes, until bubbly.
While casserole bakes, add a tablespoon olive oil to a medium sized skillet, over medium heat. Pour bread crumbs into skillet and stir completely with the oil. Once they're starting to get dry, drizzle in some of the reserved bacon marinade and stir again until dry. Continue to do this, tasting in between, until you are satisfied with the flavor of the bread crumbs.
When casserole starts to bubble, remove from oven and take off foil. Switch oven to broil. Sprinkle bread crumbs evenly over the top of the casserole, then do the same with the coconut bacon. Lastly, lightly sprinkle some vegan parmesan shreds, if using. Place casserole in the top third of the oven tobroil for just a moment. Casserole is done when top is lightly browned and "cheese" is melted. Top casserole with the other half of green onions. Approximately 6 servings. Enjoy!