at the moment taskId is just a less-bandwidth way to write an `(executionId, scopedKey)` tuple, so it's purely a performance hack on some level, though I think it may also be a little more convenient than that tuple for clients (when they manage their hashmap of tasks the key can just be an integer instead of a tuple).