tls: fix pool usage race

In rare occasions `maybeInitFinished()` could invoke `._read` on other
side, leading to the interleaved into the shared pool.

Move it out of the loop and add assertion for future tests.