```python
def stall_turns(counts: list, limit: int) -> int:
    """
    Calculate the number of turns needed to serve all customers within the given item count and per-turn limit.

    Parameters:
    counts (list): A list of integers representing the number of items each customer wants to buy.
    limit (int): The maximum number of items a single turn can handle.

    Returns:
    int: The total number of turns required to serve all customers, with no more than one turn given to any customer
         who wants more than the limit per turn. If a customer asks for nothing, they are served immediately.
    """
    if limit <= 0:
        raise ValueError("Limit must be greater than zero.")

    # Initialize the total number of turns
    total_turns = 0

    # Iterate through each customer's item count
    for count in counts:
        # Calculate the number of full turns needed for this customer
        full_turns = count // limit
        # Add the full turns to the total
        total_turns += full_turns
        # If there is a remainder, add one more turn for this customer
        if count % limit != 0:
            total_turns += 1

    return total_turns
```