Using a mixture of computation and thought I believe that I have established that this group is indeed torsion-free. I don't know of any general approach to solving that particular problem. Even if the group is hyperbolic (which this example is not, because it has free abelian subgroups of rank $2$), I am not aware of any practical implementable algorithm for deciding torsion-freeness.
Here is some Magma code for this problem. Following Pace Nielsen's suggestion that there might be an easily identifiable subgroup of index $32$, I found such a subgroup $K$ of index $4$, and we can compute a presentation of it on its four defining generators.
> G<x,y,z>:=Group<x,y,z|x*y^-1*x^-1=z^2*y, x*z^-2=z^2*x, x*y*x^-1*y=z^2,
> y^2*x*z=z*x >;
> K<a,b,c,d> := sub<G | x^2, z^2, x*z*y^-1, y^2>;
> Index(G,K);
4
> Rewrite(G,~K);
> K;
Finitely presented group K on 4 generators
Index in group G is 4 = 2^2
Generators as words in group G
a = x^2
b = z^2
c = x * z * y^-1
d = y^2
Relations
(c^-1, a) = Id(K)
(a^-1, b) = Id(K)
(a^-1, d^-1) = Id(K)
(d^-1, b^-1) = Id(K)
(b, c) = Id(K)
d * c * b^-1 * d^-1 * c^-1 * b^-1 = Id(K)
b^-1 * a * c^-1 * a^-1 * b * c = Id(K)
We see that all pairs of generators of $K$ commute except for $c$ and $d$. The final relation collapses completely, and the preceding one is equivalent to $dcd^{-1}c^{-1} =b^2$, so $K$ is a direct product of $\langle a \rangle$ and a torsion-free nilpotent group of class $2$ generated by $b,c,d$. So $K$ is torsion-free.
> Transversal(G,K);
{@ Id(G), x, y, z @}
So a nontrivial torsion-element would have to have order $2$ and be of the form $xk$, $yk$ or $zk$ for some $k \in K$. I spent some time trying to prove that this does not happen, but eventually found an easy way to do it by calculating in a finite quotient. We let $K_2$ be the kernel of the map of $K$ on the to the largest elementary abelian quotient of $K$, which has order $16$, and then check for corresponding elements of order $2$ in $G/K_2$. We see that there are none, so $G$ is torsion-free.
> PK, phi := ElementaryAbelianQuotient(K,2);
> Order(PK);
16
> K2 := Kernel(phi);
> Index(K,K2);
16
> T2 := Transversal(K,K2);
> exists{k : k in T2 | (x*k)^2 in K2 };
false
> exists{k : k in T2 | (y*k)^2 in K2 };
false
> exists{k : k in T2 | (z*k)^2 in K2 };
false