The metric EventQueueTimeMs does not reset and therefore misrepresents the controller event queue time in these two scenarios:
1. upon losing leader election - `EventQueueTimeMs` portrays the last event queue time of the previous controller and not the current controller
2. no controller events are added to the queue - `EventQueueTimeMs` portrays the most recent event queue time, not the current queue time (which is 0)
For both cases, we should reset the controller event queue time to 0.
Instead of using `LinkedBlockingQueue.take()` here, we can use `LinkedBlockingQueue.poll(long timeout, TimeUnit unit)` and reset `EventQueueTimeMs` if the queue is empty.