Timing Issue with servoj Commands in URScript

I’m encountering an issue with my URScript where the servoj commands dont run for the expect amount of time. I’m sending the script via ncat <ip_address> 30002 < script.txt and recording the output using RTDE. Here’s a snippet of the script followed by more servoj commands:

def move():
    lookahead_time = 0.03  
    gain = 1000  
			
    servoj([0.0, -1.5707963267948966, -1.5707963267948966, 0.0, 1.5707963267948966, 0.0], 0, 0, 0.002, lookahead_time, gain)
    servoj([1.7453292519943296e-06, -1.5707966095382355, -1.5707953755904542, 1.3386675362796506e-06, 1.5707946914213875, -6.178465552059926e-07], 0, 0, 0.002, lookahead_time, gain)
    servoj([6.981317007977318e-06, -1.5707974542775933, -1.5707925237224565, 5.352924815866609e-06, 1.570789783555531, -2.4713862208239705e-06], 0, 0, 0.002, lookahead_time, gain)
    servoj([1.5707963267948964e-05, -1.5707988662489583, -1.5707877711909033, 1.2044517168012869e-05, 1.570781604942656, -5.560618996853934e-06], 0, 0, 0.002, lookahead_time, gain)

In the output, the script_control_line at each timestamp shows that the iterations start off slow and then ramp up. This indicates the robot controller isn’t receiving a new joint angle setpoint every 2ms from the start. Instead, it looks like its waiting until it reaches the target setpoint before issuing the next servoj command. I’ve attached a plot showing this. The t parameter in the servoj command is set to 0.002 seconds and should block for this duration and then move on to the next line.

I don’t believe this is a communication issue because the iterations eventually become linear. Any help on why this is happening would be great.
script_line_time