I think you may be better off creating a new package called ticket-tracker-2, copying the code from ticket-tracker into ticket-tracker-2, and modifying from there. Then you know which code which ticket-tracker is running. Of course then you've forked and have to maintain two sets of code, so if you think there will be a lot of such maintenance work, then this would be similarly troublesome.
The other thought I have right now is trying to push the conditional branching down into the PL/SQL, so you don't have to touch the Tcl at all. Are the differences in the workflows sufficiently transparent that you could hide it like that? How much work would it be to make sure the package_id gets passed into the PL/SQL at all times (in your example, it gets passed in as context_id)?