Combine the cherries, sugar, cornstarch, water, lemon juice, and orange zest in a saucepan. Cook over medium heat, stirring often, until bubbling. Simmer for 3 to 5 minutes until thick and glossy, then cool.
Preheat the oven to 350°F. Line a 9-by-13-inch metal pan with parchment. Beat the butter and sugar until creamy. Add the eggs one at a time, then the vanilla and optional almond extract. Mix in the flour, baking powder, and salt just until combined.
Press two-thirds of the dough evenly into the pan. Spread the cooled cherry filling over the base, leaving a narrow border. Crumble the remaining dough over the cherries.
Bake for 35 to 40 minutes, until the exposed topping is lightly golden and the center is set. Cool completely in the pan on a wire rack.
Whisk the powdered sugar, 2 tablespoons milk, vanilla, and salt, adding more milk by the teaspoon if needed. Lift the cooled slab from the pan, drizzle with glaze, set for 20 to 30 minutes, and cut into 24 bars.