Exhaustive search on L=2 for small values shows that the construction above finds the optimal, but there is not much of a gap between the lower bound and the pigeonhole construction anyway.
N K L lb opt pp
6 3 2 5 6 6
6 4 2 3 3 3
6 5 2 2 2 2
7 3 2 7 9 9
7 4 2 4 5 5
7 5 2 3 3 3
7 6 2 2 2 2
8 3 2 10 12 12
8 4 2 5 7 7
8 5 2 3 4 4
8 6 2 2 3 3
8 7 2 2 2 2
9 3 2 12 ? 16
9 4 2 6 9 9
The optimal covering found for the (9,4,2) case is 12 13 23 45 46 56 87 97 89 which is precisely the pigeonhole construction using partition (1,2,3) (4,5,6) (7,8,9).
The construction does fail to be optimal for cases like N=7 K=6 L=5 where there is a trivial cover of size 4. But since C(7,6) is isomorphic to C(7,1) this is not a very interesting case.