Unexpected behavior in flare-engine?

Unexpected behavior in flare-engine?

I'm trying to implement a simple combo system in flare-engine. However, the following code does not work as expected. The delay before the combo runs out is supposed to be shorter than 2s, however, if the first combo status effect runs out, then the player's combo is broken. What's supposed to happen is each power, on a succesful hit, replaces the base power with the next version of the combo, making each successive attack stronger. How would I do that?

[power]
id=14001
name=Combo Punch
type=fixed
buff=true
icon=31
description=Basic melee attack.
new_state=swing
face=true
use_hazard=true
base_damage=hand
radius=1.0
starting_pos=melee
aim_assist=true
modifier_accuracy=multiply,125,0
post_effect=combo_2,100,2s
replace_by_effect=14101,combo_2,1
script=on_cast,scripts/powers/combo_2.txt

[power]
id=14101
name=Combo Punch (2-hit-combo)
type=fixed
buff=true
icon=2
description=Basic melee attack.
new_state=swing
face=true
use_hazard=true
base_damage=hand
radius=1.0
starting_pos=melee
aim_assist=true
modifier_damage=multiply,125,0
modifier_accuracy=multiply,75,0
post_effect=combo_3,100,2s
remove_effect=combo_2,1
replace_by_effect=14201,combo_3,1
script=on_cast,scripts/powers/combo_3.txt
post_power=2001

[power]
id=14201
name=Combo Punch (3-hit-combo)
type=fixed
buff=true
icon=2
description=Basic melee attack.
new_state=swing
face=true
use_hazard=true
base_damage=hand
radius=1.0
starting_pos=melee
aim_assist=true
modifier_damage=multiply,150,0
modifier_accuracy=multiply,75,0
remove_effect=combo_3,1
post_effect=combo_3,100,2s
replace_by_effect=14201,combo_3,1
script=on_cast,scripts/powers/combo_3.txt
hp_steal=100