Problem about SMTP 'QUIT' command

I am runing MTA that I made to receive mail.
Sometimes sending MTA send delayed 'QUIT' command.
In this case, after I send '250 OK' response for data, I must wait 'QUIT' command even a few minutes.

Thanks in advance.

Following is the log
-------------------------------------------------------------------------
2007-12-06 22:31:23 8784 2887519152 [START OF SMTP SERVICE]
2007-12-06 22:31:23 8784 2887519152 ProcessRequest called
2007-12-06 22:31:23 8784 2887519152 smtp(): command issued :cmd [EHLO], value [smail.xxxmail.net]
2007-12-06 22:31:23 8784 2887519152 [sClientHost:smail-9.xxxmail.net]
2007-12-06 22:31:24 8784 2887519152 smtp(): command issued :cmd [MAIL], value [From:<username@xxxmail.net>]
2007-12-06 22:31:24 8784 2887519152 extract_email_addr(From:<username@xxxmail.net>) return(username@xxxmail.net)
2007-12-06 22:31:24 8784 2887519152 [sFrom:From:<username@xxxmail.net>]
2007-12-06 22:31:24 8784 2887519152 smtp(): command issued :cmd [RCPT], value [To:<username@mydomain.com>]
2007-12-06 22:31:24 8784 2887519152 extract_email_addr(To:<username@mydomain.com>) return(0:username@mydomain.com)
2007-12-06 22:31:24 8784 2887519152 extract_domain(username@mydomain.com) return(username:mydomain.com:0)
2007-12-06 22:31:24 8784 2887519152 SQL_GetMember called(username)
2007-12-06 22:31:24 8784 2887519152 SQL_GetMember return [username][1077]
2007-12-06 22:31:24 8784 2887519152 [SMTP_RECEIVER_TYPE_USER]sending..... 250 OK
2007-12-06 22:31:24 8784 2887519152 smtp(): command issued [DATA]
2007-12-06 22:31:24 8784 2887519152 from:[From:<username@xxxmail.net>] mail_message(): iKnownSize=0
2007-12-06 22:31:24 8784 2887519152 receive_mail_message return(2788 bytes)

--> 2007-12-06 22:31:24 8784 2887519152 sending..... 250 OK
--> 2007-12-06 22:33:12 8784 2887519152 smtp(): command issued [QUIT]

2007-12-06 22:33:12 8784 2887519152 Data Size:[2788]
2007-12-06 22:33:12 8784 2887519152 FindForward(username@mydomain.com) not found
2007-12-06 22:33:12 8784 2887519152 ProcessMime called
2007-12-06 22:33:12 8784 2887519152 charset:[euc-kr]
2007-12-06 22:33:12 8784 2887519152 before ConvertToUtf8
2007-12-06 22:33:12 8784 2887519152 after ConvertToUtf8
2007-12-06 22:33:12 8784 2887519152 sSender:[<username@xxxmail.net>]
2007-12-06 22:33:12 8784 2887519152 body length:[1943]
2007-12-06 22:33:12 8784 2887519152 sContent:[1990]
2007-12-06 22:33:12 8784 2887519152 Initial receiver[username]
2007-12-06 22:33:12 8784 2887519152 [username][1077]
2007-12-06 22:33:12 8784 2887519152 SQL_New(username:username@xxxmail.net:dd:content:<username@xxxmail.net>:username) return(0)
2007-12-06 22:33:12 8784 2887519152 [END OF SMTP SERVICE][0]
-------------------------------------------------------------------------

that's interesting, the data size is 2788, but quit is being issued two minutes later. Is this an reoccurring behavior ? What is the MTA, is this exim ?

This kind of delay shows often in my MTA log. Sometimes it takes several minutes. I coded receiving MTA by myself. I am not sure what is sending MTA.

I am wondering what does the sending MTA do before 'QUIT'.