You could perhaps use this formula:
speed * time = distance
but solve for time:
time = distance/speed
distance is 100 since you create the tiledBgs with an x of -100
so you get this:
100/40 = 2.5
100/50 = 2
100/60 = 1.666
The last number you had is closer to 50/60 = 0.8333 which also works since the tiledBg texture is 50 pixels wide, you just end up with more overlap.
You can get the same effect without the warmup time by just positioning the tiledBg's in you layout and setting their speed. Then replace all your events with one every tick event:
Every tick
set x to self.x%50-50
Change the 50s to whatever the texture width is.