The problematic bots are those that are not marked as bots so that they may enter locations where bots are banned.
The solution is for LL to actively monitor for avatars that are teleporting all over SL while sending data from a LSL script to an offworld or inworld server. I'm talking about data that can't be collected by the viewer/bot-software directly. The pattern should be quite distinct - teleport, data collected, data transmitted, repeat. Or even several teleports and then transmit the data if it's cached for a while in the script. Ditto for detecting the LSL commands being run after each teleport. The regions are in the best position to detect and collate this bot-like behaviour from avatars that are not flagged as bots. With the unmistakable bot behaviour being the frequent teleporting, collection and transmission of specific information.
Once the offworld/inworld server is identified all avatars sending information to this server should be suspended from being able to login immediately to prevent new bots being created to replace suspended bots. This will ensure new bot accounts are instantly blocked the moment they start reporting data to their database.
The goal is for all bots to be flagged as bots in their profile so that people can block them by using the region setting to deny bots entry to the region. Of course we will need similar functionality to block bots from mainland parcels too.
What we should not be doing is adding limitations to existing LSL commands, or the ability for new accounts to explore SL as some people have suggested.
Bot behaviour is quite distinct and detectable by the regions and this is where we should be enforcing the bot policy on the bots directly.