After adding the index for "last_activity_at", we did not see a noticeable improvement in response time and the 95th percentile was still unusually high. There was a significant improvement in the error rate. The chart below shows a visual correlation between spikes and the response time. Upon inspecting these remaining errors, it was found that they all shared the "asc" sort field in common. This could explain the unexpected response time where we were expecting an improvement.
After removing the "asc" parameter, we saw some improvement but unfortunately, because of the way PATCH was implemented in the loadtest, it caused the response times to gradually become slower. At this point in time, because "asc" was not being used by the browser and will not be used by the mobile app, adding that index has been bumped down in priority.