```python
from collections import deque

def hold_queue(callers: list, limit: int) -> list:
    if limit <= 0:
        raise ValueError("Limit must be greater than zero")
    if not callers:
        return []
    
    queue = deque(callers[:limit])
    for caller in callers[limit:]:
        queue.popleft()
        queue.append(caller)
    
    return list(queue)
```