How to Subtract One Signal from Another?
Under the assumption that your background noise is statistically independent of the signal you want to recover and that your second microphone picks up virtually nothing from the body noise, you have the following model for your measurements:
$$ \begin{eqnarray} M_1(t) &amp;=&amp; L\{N(t)\} + B(t) \\ M_2(t) &amp;=&amp; N(t) \end{eqnarray}$$

Here, $M_1,M_2$ are the signals picked up by the microphone, $B(t)$ is the signal you want to recover, $N(t)$ is the environmental noise signal and $L$ is a linear time invariant system that maps the recorded environmental noise to what is picked up by the second microphone.

With $\langle\langle \cdot, \cdot \rangle\rangle$ as cross correlation, we also have the non-correlation constraint $\langle\langle N,B \rangle\rangle=0$ and $\langle\langle L\{N\},B \rangle\rangle=0$ as a consequence of statistical independence of $N$ and $B$.

These prerequisites guarantee a cross correlation matching pursuit to converge against $B(t)$:


Normalise $M_2$ with the standard inner product: $M_2(t)\leftarrow \frac{M_2}{\sqrt{\langle M_2(t),M_2(t) \rangle}}$
Find $c(t):=\langle\langle M_2,M_1\rangle\rangle$
Find the time associated with the maximum of the squared cross correlation: $\tau=\mathrm{argmax}\left( c^2(t) \right)$
Update $M_1$ to remove the contribution of the environmental noise: $M_1(t)\leftarrow M_1(t)-\langle M_2(t-\tau),M_2 \rangle\cdot M_2(t-\tau)$
If result not good enough, go back to 2.


In step 4 you may also use $c(\tau)$ instead of the inner product if the cross correlation uses the same inner product. Stopping the matching pursuit is a question of experience. Some of the assumptions you need for this algorithm are only approximately true, like the perfect uncorrelatedness of the environmental noise and the body signal. A good way to check if your matching pursuit runs into a non-productive state of signal modifications is to observe the natural square-norm of $M_1$. If it stops decreasing in step 4, terminate the loop.

After the algorithm ran, $M_1(t)$ will contain only your body signal $B(t)$.