I've run into a similar situation before. Keep in mind that if you have any user or group tasks that aren't readonly, you run the risk of the user attaching a different content type after you have already selected your path if you build one defined path immediately after instantiation. The solution I came up with was to put an external path right at the end of the set of tasks that were common and have it determine which of two alternate paths to follow based on the metadata of the files attached to the job. It wasn't an ideal solution, but it met the requirement