How hard can identifying non-membership in a semi-decidable language be?
A language $L$ is semidecidable if there exists a computable predicate $f$ such that
$$
x \in L \Leftrightarrow \exists y \, f(x,y).
$$
We can construct a machine $M$ which halts on $x$ iff $\exists y \, f(x,y)$: the machine just goes over all possible $y$, for each one checks whether $f(x,y)$, and if so, halts. This shows that we can decide $L$ using an oracle to the halting problem, i.e., using an $\emptyset'$-machine.