To the bowl of a stand mixer fitted with the paddle attachment (or large bowl and electric hand mixer), cream together the first 6 ingredients (through vanilla) on medium-high speed until light and fluffy, about 5 minutes.
Stop, scrape down the sides of the bowl, and add the flour, cocoa, cornstarch, baking soda, optional salt, and mix on low speed until just incorporated, about 1 minute; don’t overmix. Add the chocolate, peanut butter chips, and blend until just incorporated.
Using a medium 2-inch cookie scoop or your hands, form heaping two-tablespoon mounds (I made 17). After scooping the dough into mounds, I lightly rolled the dough mounds in my hands to make sure they were compacted. Dough may be slightly crumbly but holds together when squeezed. Place mounds on a large plate, and flatten them slightly.
Cover with plastic wrap, and refrigerate for at least 2 hours, or up to 5 days, before baking. Do not bake with warm dough because cookies will spread and bake thinner and flatter.
Preheat oven to 350F, line a baking sheet with a Silpat or spray with cooking spray. Place mounds on baking sheet, spaced at least 2 inches apart (I bake 8 cookies per sheet).
Bake for 8 to 9 minutes, or until edges have set and tops are just beginning to set, even if cookies appear undercooked, pale, and glossy in the center. They firm up as they cool. (The cookies shown in the photos were baked with dough that had been chilled overnight, allowed to come to room temp for 15 minutes, and were baked for 8 minutes. They have slightly chewy edges with soft, pillowy centers).
Allow cookies to cool on the baking sheet for 5 minutes before removing and transferring to a rack to finish cooling.