It sounds like your "Error executing identify" is probably a non-specific timeout message. It isn't just the number of layers, but the complexity of those layers as well. If you really need to identify on all of those layers, you may want to try writing a task instead that can take the input and work in the background and return the result to the user when it is done.
You could also try combining datasets together to create fewer featureclasses to identify. They could be identify-only services while the others are for visualization.
If you are trying to identify and return results on all 90+ layers, that could be the issue. It could be a time-out. The server response message should give you a good idea of the problem.