Does the HTTP protocol specify a max length for the ETag?
No, an entity-tag is a quoted-string with an optional weak indicator prefix and can be of any length in theory.
In practice, the length of a header field is limited, both by user agents and web servers. The maximum viable length of the entire header field should be somewhere at 8 KiB.
No.
14.19 ETag
The ETag response-header field provides the current value of the entity tag for the requested variant. The headers used with entity tags are described in sections 14.24, 14.26 and 14.44. The entity tag MAY be used for comparison with other entities from the same resource (see section 13.3.3).
ETag = "ETag" ":" entity-tag
Examples:
ETag: "xyzzy" ETag: W/"xyzzy" ETag: ""