What is Best practice for modeling single end status for subprocesses and main processes ?
Single end state for subprocesses
It is a best practice, to have just one end event on subprocess level. For this, you have to merge all sequence flows with a gateway, before reaching the single end state of your subprocess. In general, the main process can only deal with one end state/output from the subprocess. Otherwise, if you would have multiple end events on subprocess level, your main process has to handle those different outcomes with e.g. an event-based gateway or XOR.
Multiple or single end states for main processes
It is allowed to have multiple end events on main process level, but it only makes sense, if they describe a different state of how your process could come to an end.