What I'm asking is:
Is it semantically acceptable to respond HTTP 200 OK and not HTTP
202 Accepted when the action hasn't been completed yet? How do we handle
failures after the HTTP 200 OK response has been sent to the client?
No, that would not be acceptable. If you get back a 200 OK for a manipulating operation, the operation should have completed. This is especially true for actions. The corner case here is that you have a long-running operation in the backend (stating 202
Accepted), which fails later; this is not handled by either OCCI or HTTP in a canonical way.
If this would affect a resource, I would expect the backend to send back the previous (unmanipulated) state of the resource on the next GET operation, or (if a new resource was supposed to created) a 404 Not Found, because it was never created in the first
place.
An out-of-band status message whether (and what) failure has happened during the course of a 202 Accepted (until the operation has finished) is not something RESTful services handle nicely; usually, an operational status resource is created (which you
can then poll), or a separate side channel (e.g. via Websockets) would be established.