Reverse engineering! These sorts of things can be fun. I know from experience. You are actually doing pretty good so far. I think your suspicions about them using ECDSA are likely accurate.
The frames you are showing above are called application protocol data units (APDUs). APDUs have requests and responses. In the request, the first several bytes (variable length, of course) define various aspects of the APDU. Once you decode those you can then work on trying to interpret the payload.
The response APDU contains the response data followed by a status code (0x9000 in this case, indicating success).
Once you have the request APDU mapped out, you can start trying to interpret the data. Look for things like TLV (type, length, value) encodings, etc. Look for values like 0x20, since that is a common length (32 bytes) in these sorts of protocols.
The actual algorithm could be either ECDSA, EdDSA, or even ECDH. Tesla key cards, for example, use ECDH. But, as I mentioned earlier, it seems likely that ECDSA is being used here.
Conceptually, the request is going to have some sort of structure identity and some sort of challenge. The key then responds with with a challenge response and information about the identity of the key.
Another approach is to compare the requests/responses across multiple attempts, see which bytes are different and which are the same. Those are likely TLVs, commands, etc.
We can see "41 04 ...." in the response. That 0x41 could be a length.