Turns out I had two settings in conflict. Using this thread (Visual Studio Code - Convert spaces to tabs) I found that I had to uncheck both of these editor items:
I only had the 'insert spaces' option unchecked. It seems that even though I used the tab character, if VSCode has the 'Editor: detect indentation' option checked, it will detect tab characters but will default to converting tabs to spaces still. So every new file will use spaces. Both need to be unchecked to use the tab character, allow tab stops locations to be respected, and keep that setting for new script files.