Hi!
Your solution looks to be definiately more sophisticated than mine. Which is actually not a good thing. Calling script function is much more efficient in case of performance than running a program.
Anyway thank you for writing. I think your solution with much more features than mine will be a good supplement for solving some special cases in backup problem.
:)