What are the orchestrating cases not suitable for Temporal?

Could Temporal handle this or should we just make the locking part out of the workflow?

I would in workflow code start a child workflow async (see here on how to do that). This child workflow is going to execute the two activities. If first activity fails it would then signal the parent workflow and parent workflow on receiving this signal can just just return (with custom message if you need). That way you can respond back to your caller as soon as activity 1 fails, and have the child workflow continue execution.