Preheat the oven to 375°F and line two baking sheets with parchment paper.
In the bowl of a stand mixer fitted with the paddle attachment, beat the butter and sugar. Add the olive oil, eggs, and vanilla. Continue to beat on medium speed until smooth and creamy, about 2 minutes.
In a large bowl, sift together the flour, cacao powder, baking powder, baking soda, and salt.
Use a baking spatula to fold the dry mixture into the wet until just combined. Add in the chocolate chips, marshmallows, and crushed candy canes (if using) and fold until well dispersed.
Using a medium cookie scoop (about 2 tablespoons) scoop the dough onto the prepared baking sheets, spreading the cookies about two inches apart. I like to dip the scoop in a glass of water every couple of scoops to prevent sticking.
Transfer the baking sheets to the freezer to allow the dough to chill for 10 minutes before baking. This delays the spreading of the cookies while they bake, which results in a deliciously gooey middle (aka my kryptonite).
Remove the cookie dough from the freezer and pop the tray in your preheated oven. Bake for about 12 minutes. The cookies will look a bit undercooked when you remove them, but that's good! They will firm up as they cool. Allow the cookies to cool on the tray for 6 minutes before transferring to a cooling wrack to finish the cooling process. Store the cookies in an airtight container for up to a week, or freeze to enjoy later.