I monkeyed with some different approaches and settled on one that I think works. I have a Hello Bean derivative that can connect to multiple beans, poll them, etc. all independently and can re-scan and re-connect.
My main activity is still allocates a BeanManager and implements the BeanDiscoveryListener interface.
I added a new class called MetaBean which encapsulates a Bean, implements the BeanListener interface, and also allocates a handler for periodic polling. Each discovered bean now essentially has its own bean listener and handler. When a connect completes, I know which bean its referring to. When a read completes, I know which bean finished.
The code is pretty simple and straightforward java/android.