Preheat oven to 350°F. Line 2 sheet pans with parchment paper. Set aside.
In the bowl of a stand mixer fitted with the paddle attachment, add the butter, oil, granulated sugar, and powdered sugar. Sprinkle the baking soda, baking powder, and salt over the ingredients. Mix until creamy, 1-2 minutes. Scrape down sides of bowl as needed.
Add the sour cream, eggs, vanilla, and almond extract. Mix until combined, about 1-2 minutes.
Add the flour and mix until combined. Scrape down sides of bowl as needed. Do not over mix.
Scoop the cookie dough using a cookie scoop or spoon. Use about 50g (3 Tablespoons) dough for each cookie. Roll dough into balls. Place 100g (½ cup) granulated sugar in a small bowl. Roll dough in the sugar, coating it completely. Place 8 cookies on one baking sheet, 2-3 inches apart. Using the flat bottom of a glass, press the center of each cookie, flattening it. Don't flatten too thin - you want them about ¼-inch in thickness. Dip the bottom of the glass in the sugar between pressing each cookie. This will keep it from sticking to the dough.
Bake cookies for 8-10 minutes, until edges are set. The center will look soft, but that's ok. Let the cookies cool on the baking sheet for 10 minutes. Then transfer to a wire cooling rack to cool completely.
In the bowl of a stand mixer, using the paddle attachment, combine the butter, salt, pure vanilla extract, coconut extract, and sour cream. Mix until creamy, about 1-2 minutes.
Gradually add the powdered sugar. Add cream or milk as needed to get the frosting to a thick but spreadable consistency.
Spread frosting over the center of each cookie. Chill in the refrigerator for at least 1 hour, or up to 4 days. Before serving, cut the limes into 8 wedges per lime. Top each cookie with a lime wedge. When eating, squeeze the lime over the cookie to release the lime juice.
