EDIT 5:
It turns out, the index byte does play a role in calculating checksum, here is one particular example proving it:
INDEX CHECKSUM PAYLOAD
0x2B 0x704E 0x7E
0x3E 0x72C1 0x7E
Same payload has different checksum for different indexes. (checksum bytes reversed to show the actual 16 bit int)
Some more samples:
INDEX CHECKSUM PAYLOAD
0x3E 0x72C0 0x7D
0x1F 0x6E45 0x01
0x2B 0x704F 0x7F