Rotary Encoder Interrupt routine interfering with Servo.h

I read the pulse width to get an idea of what is happening. at servo.write(90) the pulse width is as expected, but as the position is lowered the pulse width decreases, but also, the period decreases dramatically until the following results:

(values are in microseconds)
(Low)(High)

1349 186
819 46
1188 12
949 99
825 100
68 13
1679 41
1400 35
324 11
949 86
1372 89
1177 79
216 37
505 38
886 112
1676 196
731 28
1190 77
926 120
1347 136
1006 119
455 14
// increasing the command position
904 35
1787 140
1783 131
1932 114
2827 293
3991 380
4422 457
4954 489
5644 492
6592 609
7079 638
7606 703
8391 755
8165 764
9049 800
9607 873
10144 929
10736 959
11516 985
11704 1070
12305 1069
12923 1149
13559 1215
14660 1255
14964 1209
15206 1306
15188 1270
15188 1281
15770 1330

The worst glitching starts happening around servo.write(50) or so which corresponds with a period dropping below 2 milliseconds which is the minimum period recognized by the motor controller.

oddly enough the pulse widths behave similarly when the command position is increased. I suspect there is a lot of noise introduced in the PWM signal. Perhaps the hardware interrupt is causing a low in the PWM signal for a brief moment?