Asterisk has two durations, one is the total duration of the call and the other is the billining duration.
1.- Call Duration, It takes the time since the last dialing digit is sent, that is, since we pressed Send.
2.- Billing Duration, it takes the time since they answer the call.
That is why you see the difference in the reports.
In VitalPBX go to Reports/CDR Reports/CDR and you will see that there are two duration fields: Duration and Talk Time (Billing Time).
It seems that in the Sonata Stats the full call duration is taken instead of the talk time. Now, the reason why the recording is not shown is because of an issue that will be fixed in the next version.
As for the recording not being shown, it is an issue regarding the validation of permissions. We have already fixed it on our development servers. We will publish this fix soon.