Team Chat Report Session API and List User Chat Message API inconsistencies

I am developing a team chat oauth based service and am using the

  1. /report/chat/sessions
  2. /report/chat/sessions/{{session_id}}
  3. /chat/users/{{user_id}}/messages
    (with to_contact or to_channel parameters).

The scopes I have are:
report_chat:read:admin chat_message:write:admin report:read:admin contact:read:admin chat_channel:write:admin recording:read:admin chat_channel:read:admin chat_message:read:admin

I have a couple of questions regarding the above APIs which are not mentioned in the docs.
A) I have noticed that the response for 1. only gets updated as and when an internal user sends a message to any session and not when an external user to the zoom organization sends a message.

B)In 2. with team chats, the sender field, which give us the email of the user sending the chat message, remains empty but we do get a sender_member_id which is unique to external users. Is there any way to fetch the external users email using any api.

C)In 3. , it is mentioned in the documentation that there is a status field that gets added when you add the include_deleted_and_edited_message=true parameter. The status fields could be Normal, Deleted or Edited. It looks like if I delete the message, the message gets deleted as a whole from the API response and if I edit the message, the status field does not get updated.I have enabled the Store edited and deleted message revisions in the Account Management Tab but yet this seems to be the case.

D) I have noticed that with 3. if I give the to_contact field as an external users email address(the sender field) we get 400 bad request with the response:
“code”: 300,
“message”: “User does not exist: {{emailId}}”
the but if I set it as the sender_member_id field which we get in the response of 2, we do get a valid response.
Could you provide some clarity on the above issues, check if it’s a bug or if it’s something I am doing wrong.
Thank you