Issues with paging during account aggregation for Web Service connector

I am having an issue with a web service connector I am building for a SOAP XML api, where the paging steps are not working as expected. I followed the examples here Paging Based on Limit-Offset to build the steps below

$limit$ = 100
TERMINATE_IF $RECORDS_COUNT$ < $limit$
$offset$ = $offset$ + $limit$
$request.soap:Envelope.soap:Body.ListUsers.offset.text()[1]$ = $offset$

When I run the aggregation I am only getting the first page, I tried swapping out the TERMINATE_IF part to be TERMINATE_IF $offset$ < 300 and I was able to get it to run multiple times however when looking in the logs the request body was not getting updated with the correct $offset$, here is what the body looks like:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ListUsers xmlns="PassportService">
      <limit>100</limit>
      <offset>0</offset>
      <sortByLastUpdated>false</sortByLastUpdated>
      <emailDomains>
      </emailDomains>
    </ListUsers>
  </soap:Body>
</soap:Envelope>

Is there any reason that a) the terminate wouldn’t work using $RECORDS_COUNT$ and/or b) why the request body is not getting updated properly with the offset?