Perform retries for getting source and target replication markers

Because ReplicateBatch has its own handling to manage batch sizes.

And no global try/catch, because we don't want to or cannot retry steps that have already succeeded.

If an exception occurs after getting the source marker, we don't want to get it again.  If an exception occurs after getting the target marker, trying again will create a duplicate cursor and it will fail.  And then when replicating batches, we aim for failure while adapting batch sizes.

So we have to retry the smaller units.