one additional way of achieving blocking execution until something happens is to use intermediate events. As it comes to the case described I would suggest to use conditional intermediate event that will be activated as soon as defined condition becomes true - for example an object is inserted into the session.
HTH