WIP: Allow passing specific PROVIDERs to AsyncListener callbacks

That, and there's a bunch of other stuff in here that needs to be sorted into different commits.

Also lacking some documentation and additional tests.