Hi Kip,
I think the feature you're looking for can be accomplished quickly by customizing the `whitespace-display-mappings` customization option in whitespace.el.
If your tab size is fixed at 4, you can just go ahead and customize it with `M-x customize-variable whitespace-display-mappings` and change the TAB character mapping vector to be "---->" or your preferred output. If your tab size is variable, then perhaps you could add a hook to modify the "tab-mark" vector list when loading a new file.
Hope that helps.
Cheers,
Jack