Hi Stefano,
this is from the userguide:
If an execution is locked, methods that change the execution will throw a PvmException and the message will reference the actual locking state. [...]
An execution implementation will be locked:
- When it is ended
- When it is suspended
- During asynchronous continuations
The behaviour you describe seems to be intended.
Maybe what you can try to model your usecase is not suspend the process instance or it's sub processes but move to a wait state with an escalation trigger that will fire when the "suspend" time is over. This way the process is not locked.