The ConversationId is computed from a bunch of underlying message properties https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxomsg/f8e4a5fa-cb73-4eca-b174-72e1fda821a6 so changing the subject would also modify the Conversation Topic https://learn.microsoft.com/en-us/office/client-developer/outlook/mapi/pidtagconversationtopic-canonical-property so a different ConversationId expected. This behavouir is documented for EWS but work the same for Graph https://learn.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-work-with-conversations-by-using-ews-in-exchange
Exchange applies the same ConversationTopic value to replies to the first message and then updates the ConversationIndex value to represent the message's position relative to the original message. If the subject of the email thread changes, Exchange applies a new ConversationTopic value and new ConversationIndex values to the new conversation.
You can track if a message is a reply to another message using the in-Reply-to property https://learn.microsoft.com/en-us/office/client-developer/outlook/mapi/pidtaginreplytoid-canonical-property eg
$expand=singleValueExtendedProperties($filter=id eq 'String 0x1042')