One thing I noticed which may help with #3.
A triggered query sees i as it does with the current ListView, but it does not see item. You can get around that by using a Run Script event and triggering the query with addtionalScope, but that is no fun.
However, if you pass item you may need to worry less about having access from outside of the ListView context. All of my use cases so far only need access to the ListView within its own context.
I also have a suggestion - I would even call it a critical request: Follow the pattern of the Form component.
The Form data key property should pull that property from item like a form's child components pull from the form's Data source.
In addition there should be an equivalent of the Form's Data property so we can the current values of the ListView's children along with an Initial data property. Initial data is les critical as we can still access the ListView's data source.
Using the existing form pattern would make using the ListView much easier for data editing use cases.