```python
def format_bits(value: int, width: int) -> str:
    if not (isinstance(value, int) and value >= 0):
        raise ValueError("Value must be a non-negative integer")
    if not (width > 0 and width % 4 == 0 and width <= 32):
        raise ValueError("Width must be a positive multiple of four not exceeding 32")
    if value >= 1 << width:
        raise ValueError("Value does not fit in the specified width")

    binary_str = format(value, f'0{width}b')
    grouped_bits = ' '.join(binary_str[i:i+4] for i in range(0, width, 4))
    return grouped_bits
```