In the bowl of a stand mixer fitted with the paddle attachment, gently blend the butter, sugars, salt, and vanilla on low speed until light and fluffy, about 5 minutes.
Add the eggs one at a time, scraping down the bowl after each addition.
Sift the flour, baking soda, baking powder, and cinnamon together into a large bowl. Add to the creamed mixture all at once and mix on low just until combined.
Stir in the oats, coconut, carrots, raisins, and walnuts by hand. Chill the dough until firm, at least 30 minutes.
While the dough is firming up, preheat the oven to 350 degrees F. Line two baking sheets with parchment paper.
Scoop the dough onto the prepared baking sheets using a #40 scoop about 1 1/2 inches apart.
Bake until golden brown, 12 to 15 minutes. Rotate and switch the baking sheets as necessary for even baking.
Allow the cookies to cool for a minute on the baking sheets then transfer, using a spatula, to a cooling rack and allow to cool completely.
Use an offset spatula to spread a few tablespoons of frosting on half of the cooled cookies, then sandwich the cookies together.
Store the cookies in a single layer in an airtight container.
In the bowl of a stand mixer fitted with the paddle attachment, cream the cream cheese, butter, and confectioners' sugar on medium speed until light and fluffy, about 6 minutes.
Add the vanilla, salt, and lemon zest and mix to combine.
Store the frosting in an airtight container in the refrigerator until needed. Before using, allow to come to room temperature and beat on medium speed using a paddle attachment until light and fluffy.
Thick and creamy, the frosting is great for sandwiching cookies or topping bar cookies.
Reprinted with permission from Cookies at Home with the Culinary Institute of America, by The Culinary Institute of America, copyright (c) 2011. Published by Wiley.