Paul,
your "iff" statements are false. That is, the other way isn't true.
Here's a counter example:
p=31
k=26
L( -2*26 | 31 ) = 1
L( -26 | 31 ) = 1
But p does not divide any 26*2^n+1.
-26^-1 = 25
<2> = {1,2,4,8,16}
And now for my oops... L( a | p ) = -1 doesn't imply order(a,p) = p-1, it just tells you order(a,p) does not divide (p-1)/2.
Anyhow, now that we know the kronecker tests don't catch all the impossible k, I'm still proposing a consideration of something like this:
Trial-factor p-1 a little bit to get one or a few small factors. Then establish as small an upper bound u as possible for order(2,p) using the found factors. Next proceed to calculate k^u (mod p) for the different k. Should any of the k^u != 1 we discard that k.
As some sort of "proof of concept", this method applied to p = 31 and provided with the factors 2 and 3 of p-1=30 successfully eliminates all 26 impossible k values, while the "Kronecker tests" miss 10 of them. Granted, this is an extreme case... But still, it seems worth investigating further.
Regards,
Mikael