Based on painful experience I submit that a complex system of scripts that call other scripts is itself a serious problem. Instead I suggest moving functionality into modules, and making individual scripts wrappers around the appropriate module. Then your wrapper script can be built quite directly by loading a bunch of modules and making the right calls.
This makes consistent error handling tremendously easier, and with a single confess you can figure out exactly who called what where whenever you want.