Ok, so if I understood you right fire_aim_time, wind_up, wind_down should be divisible by 0.125, or it's ried to in-game time, e.g. if fire_aim_tim finished in .387 fraction of a second it will be prolonged to 0.5 in real time? Also cooldown and burst duration can be anything and are not affected by the tickrate?
wind_up and wind_down get rounded up to the next 0.125 step OR 0.125 added if they are already a multiple. Fire_aim time seems to be different for single and burst fire weapons. For single fire, you add 0.125 seconds and take that regardless if it is a multiple of 0.125 or not. Burst weapons do not add anything and just take the random value.
As an example:
wind_up is 0 seconds -> 0
wind_up is 1 second -> 1.125
wind_up is 1.1 seconds -> 1.125
single fire weapon:
fire_aim is 0 seconds -> not tested, according to the attribute editor it can't be smaller than 0.125 iirc
fire_aim is 1 second -> 1.125
fire_aim is 1.1 seconds -> 1.225
burst fire weapon:
fire_aim is 0 seconds -> not tested, according to the attribute editor it can't be smaller than 0.125 iirc
fire_aim is 1 second -> 1
fire_aim is 1.1 seconds -> 1.1
There is a second way to describe this that on one hand streamlines the logic, on the other hand introduces new logic errors. But it yields the same result.
If you export the weapon_report table from the attribute editor, single fire weapons have a burst duration of 0.125. In the case of single fire weapons, you could use the same formula as burst fire (that is, do not ad 0.125 seconds to fire_aim but add the 0.125 of the burst duration. This gives you the same result). On the other hand the attribute editor says that single fire weapons do not burst and therefore do not use any burst stats (CanBurst is set to 0).
So congrats to whoever at Relic wrote this, it is outdated and potentially has always been wrong. Or it has been right and the game treats fire_aim times of different weapon types differently.
What exactly happens in the end does not really matter. What matters is that the formula models what we see.