Changing to TimeoutInMilliseconds seems to have resolved the issue in my test script, I will update the prod script and wait for the next scheduled run to confirm. Thank you!
SessionOptions.Timeoutis of type
TimeSpan, it coverts to "ticks". 1 tick = 1/10000000 second. You effectively set zero timeout.
SessionOptions.TimeoutInMilliseconds = 15000.