1. Place a rack in middle of oven and preheat to 350°. Coat two 9- x 1 1/2-inch round cake pans with cooking spray. Line bottoms with parchment paper and spray the parchment.
2. For cake: Place chocolate in a medium bowl, add boiling water, and whisk until smooth. Add yogurt, oil, vinegar, and vanilla to chocolate mixture and whisk until combined. Add egg whites; whisk until smooth.
3. In a large bowl, combine the next 5 dry ingredients (through salt). Pour chocolate mixture into flour mixture and whisk just until combined. Divide batter between the prepared pans. Tap pans lightly on a work surface to pop any air bubbles.
4. Bake for 30-35 minutes, until a wooden toothpick inserted in the centers of the cakes comes out clean (leave oven on). Cool in pans on wire racks for 15 minutes. Turn the cakes out of the pans, remove the parchment, and cool completely.
5. For topping: Spread the pecans and coconut on a large baking sheet and toast in the oven, stirring once, until lightly browned (10-12 minutes); set aside. Whisk together evaporated milk and cornstarch in a small, heavy saucepan. Heat over medium-high heat and cook, whisking constantly, until thick and foamy (it will happen almost all at once), about 4 minutes. Whisk in sugar, butter, vanilla, and salt; cook for 3 1/2 minutes, until thickened. Transfer to a bowl and cool to room temperature. Stir in coconut and pecans before frosting.
6. Place 1 cake layer on a platter and spread half the frosting over top of cake. Add the remaining cake layer and spread with the remaining frosting over top. Slice and serve.