You are correct the aim is to display custom metadata on screen for multiple features simultaneously, but needs to work entirely offline. This would predominantly be used for labelling in a way similar to google maps pins (as per the image in Android Google Map: How to Draw pin which have text like (1,2,3,4,5..etc)? - Stack Overflow but with arbitrary text in the labels rather than just a large single letter). As these labels can be quite small this is not exclusive to large tablet displays.
As described in the previously linked forum post it is not well supported by CalloutPopupWindow or Callout. If labels supported borders, to increase contrast, then this would be a step in the right direction but unfortunately they do not. Currently we have to generate screen coordinates for our border which are then projected back to map coordinates for use with Polygons. Labels are then displayed on-top of the Polygons to ensure readability and point the label to the related location. I suspect this could be done far more efficiently elsewhere in the rendering pipeline, avoiding two unnecessary projection steps per point per polygon.
As a side-note, some of our indicators are associated with lines on the map. The position of these indicators along the associated line is derived from the users current view of the map, to ensure the indicator is shown on-screen when possible. To achieve this we have to hook pan and zoom events, but unfortunately zoom events do not fire reliably. See the originally linked forum post and the associated breakout post: OnZoomListener.postAction does not fire reliably at the end of a series of zoom actions.
We currently have a reasonably workable solution but the performance and UX could be improved by changes to the SDK. From a development perspective the barrier to entry for this functionality is high.
Thank you for the response and look forward to hearing from you