Currently, the fixed sharding task executor is built on top of NetworkInterfaceThreadPool, which only uses a single ASIO thread or the caller's thread. This makes it unsuitable for scheduling more than one operation on it or for scheduling anything blocking.
We should bump the size of this pool to infinite and make it use a regular ThreadPool.