It appears you generally get two transmissions, some with duplicate info. But One Transmission Contains your advertising packet data while the second separate transmission contains your Scan Response Data. So the data is limited to the 31 bytes. It's just that it is sent out separately as two different packets.
Yes you are right! The callback will be triggered twice, once for the adv report and once for the scan response. Using the "eventType" parameter of the report, you can differentiate between the two.