Preheat the oven to 350°F with a rack in the center. Grease an 8 ½" x 4 ½" loaf pan, or line with parchment and lightly grease the parchment and any exposed sides.
In a medium bowl, whisk the flour, baking powder, salt, and cardamom.
In the bowl of a stand mixer fitted with the flat beater, mix the sugar, butter, oil, and extracts on medium speed until pale and creamy, about 2 minutes, pausing to scrape the bowl once or twice. Alternatively, work by hand in a large bowl: Using a flexible spatula, smash the softened butter into the sugar and oil, then use a whisk to mix vigorously until a pale, creamy paste forms. The mixture will seem thick and stiff at first but will loosen and lighten as you mix.
Add the eggs one at a time, beating on medium between each addition until the egg is fully combined, about 30 seconds. (If working by hand, whisk in the eggs one at a time.)
Add the flour mixture and stir on low speed until combined, about 30 seconds. (If working by hand, incorporate the flour mixture with a flexible spatula.) Scrape down the bowl and stir once more to ensure the batter is well mixed.
Coarsely chop the blueberries, then add almost all of them to the bowl (hold back 1 or 2 tablespoons) and stir until evenly distributed.
Transfer the batter to the prepared pan and spread into an even layer. Scatter the remaining blueberries over the top.
In a small bowl, mix the topping ingredients, then sprinkle the mixture evenly over the batter.
Bake the blueberry bread for 55 to 65 minutes, tenting with foil as necessary, until a toothpick or paring knife inserted into the center comes out clean and the internal temperature registers at least 200°F on a digital thermometer.
Let the blueberry bread cool in the pan for 30 minutes before transferring it out of the pan and onto a rack. Slice and serve slightly warm or at room temperature.
Store the blueberry bread, well wrapped, at room temperature for several days.