The Firework (entity) API should include something along the lines of "setShotAtAngle(boolean)" to set whether the Firework entity is considered to be fired by a Crossbow (ie it flies straight as opposed to accelerating upward over time).
The name I used there is based on the apparent internal name in Minecraft, per NMS EntityFireworks class line:
nbttagcompound.setBoolean("ShotAtAngle", (Boolean)this.datawatcher.get(d));
where "d" corresponds to the boolean datawatcher value that appears to be set "true" in NMS CrossbowItem class.