APIcast sees the same response from backend for Method disabled and for rate limit exceeded because the former is implemented internally as a rate limit of zero. Either backend would have to send a difference response error for rate limits of zero or when APIcast processes the response if it can tell that the reason for rate limit exceeded was rate limit zero, it would add and different response error.
APIcast already returns a 429 when limits are exceeded https://github.com/3scale/apicast/issues/368
But it still can't differentiate between rate limits >0 or =0. Backend and APIcast need to support that.
And everything needs to be able to be configured from system UI.