Isso não parece possível em um caso geral. Isso implica que você tem um buffer para cada processo e você pode assistir os buffers de fora para decidir onde colocar a próxima entrada (agendamento) ... Claro que você pode escrever algo (ou usar um sistema de lote como slurm)
Mas, dependendo do processo, você poderá pré-processar a entrada. Por exemplo, se você deseja baixar arquivos, atualizar entradas de um banco de dados ou algo semelhante, mas 50% deles serão ignorados (e, portanto, você tem uma grande diferença de processamento dependendo da entrada), basta configurar um pré-processador que verifica quais entradas vão demorar muito (o arquivo existe, os dados foram alterados, etc), então o que vier do outro lado é garantido para levar uma quantidade de tempo bastante igual. Mesmo que a heurística não seja perfeita, você poderá ter uma melhora considerável. Você pode despejar os outros em um arquivo e processá-los da mesma maneira.
Mas isso depende do seu caso de uso.