Use correct store and logical abstractions when rate-limiting instead of using exclusive lease

In the GitLab application, there are instances of ExclusiveLease being used as a form of rate-limiting instead of locking. ChatName is one of them.

We could potentially use Gitlab::ApplicationRateLimiter, with some tweaks, for such use cases.