Hi Andrew,
We went through a ride with this one. When we first got set up the Accelo team worked really hard to try and accomodate us by building a huge set of triggers and custom fields that managed tickets through SLA statuses, with a few lists and notifications to support people's view on breaches. In the end it didn't work in practice and we had to dismantle their hard work and start from scratch. Which we felt bad about!
What we have done instead is have a simple set of custom fields and statuses. But these are all managed externally by a solution that integrates through the Accelo API. This meant we weren't constrained at all by trigger functionality, which really can't handle something like SLA requirements. And it meant that our Accelo setup is vastly simplified which is better for troubleshooting and maintenance.
The solution we built is a lightweight serverless application in AWS Lambda. So we have very low consumption costs. We also have a few custom reports that are using Google DataStudio to present info to the team on performance, as well as monthly customer reports.
Having looked at and tried most of the other options we felt this was the only way to ensure we got a solution that meets our needs. I'd recommend this as the best way to get an SLA system. Whether or not you've got development capability in house it's worth investing in, in my opinion. If you think this is a good approach and want to contract this out to someone I'd also highly recommend a company that understands Accelo and the Accelo API, otherwise you'll end up burning a lot of money with them figuring out how to integrate properly. It took us a long while the first time.
It is frustrating that Accelo have a ticketing system with no SLA management, which is really a core feature of any ticketing system. But hopefully that's a good option for you to get what you need!
Hope that helps :-)