SD-1289 Backend functionality for assigning task statuses to desk stages

This will throw if the desk is not found, we should avoid returning 500.