Você pode simplesmente adicionar mais variáveis para o filtro de dia:
awk -v start_day=24 -v stop_day=25 -v start_time=10:00:00.000000 -v stop_time=24:00:00.999999 'start_day <= $2 && $2 <= stop_day && start_time <= $3 && $3 <= stop_time' file
rendimentos
files/file1:Apr 24 10:47:00.663137 somedata
files/file1:Apr 25 23:47:00.663157 somedata
files/file1:Apr 25 23:47:00.663167 somedata
Falta-nos uma linha para 25 de abril porque filtramos cegamente o tempo para estar abaixo das 10h. Tudo o que precisamos fazer é implementar um teste lógico para filtrar o tempo apenas no primeiro dia:
awk -v start_day=24 -v stop_day=25 -v start_time=05:00:00.000000 -v stop_time=05:00:00.999999 'start_day <= $2 && $2 <= stop_day && (start_time <= $3 || start_day != $2) && $3 <= stop_time' file
rendimentos
files/file1:Apr 24 10:47:00.663137 somedata
files/file1:Apr 25 01:47:00.663147 somedata
files/file1:Apr 25 23:47:00.663157 somedata
files/file1:Apr 25 23:47:00.663167 somedata
Por meses você pode seguir a mesma ideia, mas você precisa traduzir de abril a 04 (pré-processamento ou awk magic?) e aplicar < = = > sobre isso.