Does each prefork child handles one connection or handles one request per time?
Cada filho / segmento manipula uma conexão (conexão TCP).
Quando a conexão for fechada, o processo filho aguardará por outra conexão. Em uma conexão, é possível enviar 0, 1 ou mais solicitações (solicitação HTTP).
Se o cliente não enviar uma solicitação, você poderá ter um tempo limite de HTTP 408 em seus registros, dependendo de sua configuração.
Com o KeepAlive ativado, você pode ter mais de uma solicitação HTTP por conexão , como a conexão não será fechada uma vez que o primeiro pedido é servido.
No caso sem o KeepAlive, há 1 conexão com uma solicitação, por isso pode ser a pergunta.
each new connection needs to wait in the queue to be handled by one of the idle child processes?
Sim, é por isso que você configurará o Apache para ter alguns servidores / threads ociosos, portanto, novas conexões não precisam aguardar a criação de novos processos / threads filhos. Se não houver processo filho suficiente, um novo será criado conforme necessário e de acordo com os limites da configuração.
Até agora, para minha própria compreensão do processo.