```python
def group_totals(rows: list[dict], key: str, field: str) -> list[list]:
    if not all(isinstance(row.get(key), str) for row in rows):
        raise ValueError("All labels must be strings.")
    if not all(isinstance(row.get(field), int | float) for row in rows):
        raise ValueError("All amounts must be integers or floats.")

    totals = {}
    for row in rows:
        label = row[key]
        amount = row[field]
        if label not in totals:
            totals[label] = 0
        totals[label] += amount

    return sorted([[name, total] for name, total in totals.items()], key=lambda x: (-x[1], x[0]))
```