Thanks again for your help.
DonManfred, I don't think the enable toggle is necessary since the task will not try to restart again till it is done.
I tested the timing variation using DateTime.Now and found the following:
Timers greater than about 20ms will "on average" give you the interval time you want.
However, the time interval you get for a given tick can vary about -20ms to +35ms off this average.
A really short timer interval, like 10ms, averages 17ms and can be as short as essentially 0ms and as long as 45ms.