Hi,
I second that solution. The handling of temporary locking errors is one of the great strengths of SAP workflow. We use it all the time!
You just need to detect that a locking error has occurred (eg by checking for a certain error message), then raise an exception with the 'temporary' flag set on it. In BOR, you configure this flag on the exception itself.
The background job SWWERRE picks up these workitems with temporary errors and retries them. It typically runs every 20 minutes.
cheers
Paul