You can also send a "pending" reply if
you're already processing one
INVITE
and get another in the meantime.
Yes, the pending idea is a way to improve basic delaying.
But the thing is that ACK and INVITE are separate transactions, so
testing if the first INVITE transaction has ended is not enough, we also
need to look for the subsequent ACK transaction.