The encoding can be 33 bytes (with leading zero byte which is useless, because indicates unsigned integer, not a negative)
thanks for clarification.
will mark this: 33 bytes with leading zero byte. i always thought the 0-prepad is also part of the sig, because the header lenght descriptor tells me how many bytes are used for the sig-value. and in the above example i see 0x21 (33 byte) for lenght descriptor which i have thought means the lenght of the r-sig is 33 bytes.
In particular, this message from sipa explains everything.
thank you for posting this. makes it all clear.