Use nil for unlimited retries

Use `nil`, rather than `-1`, for unlimited retries. `limit` still defaults to `1` if not specified.
Not true - it will return `nil` if it was explicitly assigned.