Happy accident: an unintended result of the collision code for a certain part of the second boss allows the canny player to hit it with several spread-shots at once, skipping over an entire attack pattern. It is now possible to defeat that second boss in about the same amount of time as the first.
I was so pleased to stumble upon this "mistake", as it's exactly the kind of thing I've been trying to build into the game from the start. And I don't think it'll be very hard for others to stumble upon it as well.
In other news, I think I've finished the third boss. He's very different than the others: instead of firing bullets, he uses his body; he has a small weak-point, surrounded by armor that deflects the player's shots; he requires the sort of careful timing that makes for fun boss fights but doesn't lend itself particularly well to the "I-just-beat-the-boss-in-10-seconds" feeling that you might get with the first two.
To compensate for this-- after all, I can't expect a player to beat the whole game in three minutes if there's a boss that deliberately gums up the works-- this boss takes more damage-per-hit than the others. And to compensate for that-- because, after all, I don't want it to be easy-- the player takes more "damage" from coming into contact with the boss and so there's less of a margin for error.
A mistake in this game, especially in the boss battles, can cost the player dearly, and that goes double for the last two bosses.