I've solved this by setting some upwards velocity to the flare and created a new flare to the same place just before the first one burns out. Too bad I'm not at my home computer right now and don't have the script with me but here's a rough estimate of what you need for this.
What you need is a loop script.
;script start bookmark
_count = 0
#start
;create a flare to position where gamelogic 'gl1' is
?_count < 1: _flare1 = "flarered" camcreate getpos gl1
;create a new flare where count is exactly 340
?_count == 340: _flare1 = "flarered" camcreate getpos gl1
;loop bookmark
#loop
;increase count with 1
_count = _count +1
;set upwards velocity to the flare1
_flare1 setvelocity [0,0,1]
;set time to wait. adjust this time to make the flare stabile.
~0.05
;go to 'start' to create a new flare when count is 339
?_count == 340: goto "start"
;exit script when count is 680
?_count == 680: exit
;go to bookmark 'loop'
goto "loop"
I know this is bad editing but hey, what ever makes it work
Using the counter because the script waits for 0.05 seconds before starting all over again and a flare burns for 17 seconds. Thus 340*0.05=17seconds and 680*0.05=34seconds.
Believe me it looks much better the way I have it at home
;D