If your device isn't an SMbus device, then don't use SMbus calls.
write_i2c_block_data doesn't do the right thing as it is still taking an SMbus register number as a parameter and inserting it into the I2C traffic.
i2c_rdwr is the correct call and is documented in https://pypi.org/project/smbus2/
with example under "Example 6: Dual i2c_rdwr".
Write two bytes, and then read as many as you fancy. Or write as many bytes as you want (probably 4).
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.