Some explanations I've found in the Outbound Option Guide:
The CallbackTime limit might be exceeded if no agents are available. If the elapsed time exceeds the CallbackTimeLimit, and RescheduleCallback (1 by default and configurable in the registry) is enabled, therecord returns to the Pending state at TimeToResetDailyStats (00:30 by default and configurable in the registry)
So expired Callback return to DL as Pending and this is designed behaviour. Unfortunately I still don't understand why the record is "rejected" on first pass with invalid phone message. Can someone explain this?