W5500. How to quickly( or event) detect the emptying of the wiznet transmit buffer?

I wrote a stack for working with the w5500 it works on interrupts after I write in the data in TX buffer and send the send command and the interrupt is triggered by the command that has begun, BUT if you read TX Free Size Register, I see that the data did not go yet, this is especially noticeable If you open a web page through the phone.

My stack works through wiznet events, and I cannot count registers without events. By this I did
resending the Send command if the TX buffer is not completely free, and according to the interupt of the Send I read the register value TX Free Size, I know that this is not quite the right way (what could be the mistakes?).
Is there any event to find out that the buffer is empty?

That is surprise. Datasheet says:

Sn_IR(SENDOK) Interrupt
This is issued when SEND command is completed

Now question to WIZnet: what “completed” means here? I would consider it as packet was sent through the wire, and TX buffer freed. But I guess that depends on the protocol: for IPRAW and UDP that most probably is the case, but for TCP “completed” may mean that you have got remote ACK for the data sent, and data can be discarded as not needed any more.