I've built a fulfillment app for our store (carrier integrations in NZ are terrible, so it made sense for our use case to build). We're adding in functionality to handle fulfillment holds, as they're quite useful if there are any issues with the customer's details. However, the GraphQL API appears to be inconsistent in updating the updatedAt field if a fulfillment hold is applied or removed. Our update is currently based on polling for new orders rather than using webhooks, and so we use a query to check for orders updated since our last poll. If the updatedAt field doesn't change for a fulfillment hold, we can't update the order in our system.
Our query is (just limited to one order for an example):