actually send only one kernel_info request

store the Future for the initial request, allowing subsequent requests to wait on the same pending reply.

Previously, any incoming requests that arrived while waiting for the first reply would send their own request.