I wish there was a sure way to determine active neighbors too. Here's what I do re: neighbor requests
I keep a log of who has sent me a request, I use paper and pen, but even a screen shot will work. Then when I'm ready to send requests, I send to those neighbors first. Then I send to neighbors who have recently visited. (you can't count on these type events to determine who is active, because Andriod users and really low levels can't participate. And even though they can't, they can usually GET requests. It's unfair in the extreme, but they are kind enough to return requests.)
If after several hours, I still don't have 20 responses (though that is rare), I will send out a few more random ones. I just try not to send too many in case I need to request something else within a day or two. (Like the signatures.)
Hope this helps!