We consider a discrete-time system comprising a first-come-first-served queue, a non-preemptive server, and a scheduler that governs the assignment of tasks in the queue to the server. The server has an availability state that indicates, at each instant, whether the server is busy working on a task or is available. In the latter case, if the queue is nonempty, then a task-assignment control policy implemented by the scheduler either assigns a new task to the server or allows it to rest. The server also has an integer-valued activity state that is non-increasing during rest periods, and is non-decreasing otherwise. An instantaneous service rate function ascribes to each possible value of the activity state a probability that the server can complete a task in one time step. For a typical instantaneous service rate function, the completion probability decreases (server performance worsens) as the activity state increases. The scheduler policy has access to the queue size and the entire state of the server. In this article, we study the problem of designing scheduler policies that stabilize the queue. We show that stability, whenever viable, can be achieved by a simple policy that bases its decisions on the availability state, a threshold applied to the activity state, and a flag that indicates when the queue is empty. The supremum of the service rates achievable by stabilizing policies can be determined by a finite search. Our results remain valid even when the instantaneous service rate function is not monotonic.