The move hub has MTU of 23, so we can only send 20 bytes at a time. However we are sending 100 bytes at a time.
This probably works on Linux since BlueZ will be smart and divide it up but other OSes don't do this.
To fix this, we need to be able to read the hub type and or MTU of the active bluetooth connection. The former is blocked by https://github.com/pybricks/pybricks-micropython/issues/49 and the latter was just merged into Bleak (with the caveat that it always returns 23 on Linux). The latter would actually be best since the OS could negotiate a smaller MTU than the one requested by the device (although this is not known to happen on any known OS).