1 may you please specify which subscription mode are you referring to?

2 this is correct assuming that after the DataProvider sent the 10th record a call to endOfSnapshot (or smartEndOfSnapshot in case of SmartDataProvider) is issued.

3 there is nothing ready for that; you may use a MERGE item that pushes the number of records in your command table at any given moment.

4 a snapshot is stored per each subscribed item; you can track the number of subscribed items in your DataProvider using subscribe and unsubscribe methods.
You can use your MeadataProvider to track new subscriptions for each single client and track them; take a look to wantsTablesNotification notifyNewTables and notifyTablesClose

HTH