Hmn, but according to the BPMN2 spec (p 443) it seems that only "Terminate" and "Cancel" end events will terminate the subprocess:
For all other End Events, the behavior associated with the Event type is performed, e.g., the associated Message is sent for a Message End Event, the associated signal is sent for a signal End Event, and so on. The Sub-Process instance is then completed, if and only if the following two conditions hold:
All start nodes of the Sub-Process have been visited. More precisely, all Start Events have been triggered, and for all starting Event-Based Gateways, one of the associated Events has been triggered.
There is no token remaining within the Sub-Process instance.
Argh.