Good deal if it is a hardware thing - the I/O bottlenecks have been cleared up for us (cost but worth it) Ram Disk - all recording(s) happen within ram - this started just as a means to not have early drive failure but proved worth its weight in gold.
I'll know as the next couple of weeks roll forward - Management always looks at the bottom line etc.. so we have to prove everything (Why/Why not).
It comes as an after thought to some (logging and monitoring that is) but thats what they pay us for - to think and then prove Why.
The ability to see reasoning (call disconnect, time etc to me is critical) staffing (we currently over staff) obviously not cost effective for any company, not to mention who was where when (aka - such n such was being paid but answer one call in the morning) that might work for small places with less hustle but we see it all the time "Gone fishing" just trying to keep it balanced.
We have some monitoring tools that happens now but they are trivial in comparison.
The CRD built into Asterisk is not correct - just meaning one cannot state Agent answered @ what time, wait time since the CDR handles (Start, answer, End, duration, billing times - but again The Q (switch) answered, not the agent.
Hard to get some to understand, surprisingly. Your app looks good to me and if we do not obtain it it will not be from lack of trying - just bad management call.
Still any work arounds I happen to find I'll post so others can have a shot at it should it help.