What is best practice to update the device twin desired properties for multiple (1000+) devices?
Is a batchjob the correct way to go?
Other option for updating a multiple (1000+) devices is to use an export/import devices bulk operations, see more details here.
Update:
I do recommend to read a Reference - IoT Hub quotas and throttling related to the limits and Updating a large number of device identities.
Besides that, the export/import devices bulk operations allows to use a stream job for analyzing all devices and creating an import blob for their updating. Also, the import bulk operation is only way to update a reported properties in the cloud backend, if it is necessary.
Note, that the import bulk operation job generates an importErrors.log blob with a detail info for error message per each device update.
You can use Automatic Device Configuration to update and monitor twin changes for a large number of devices.