Hello Darin Molnar,
Did you find a solution for this issue? If so, please feel free to share with the community should someone else encounter the same thing. In addition, my reply will bring this post to the top of the questions and may solicite additional responses.
Second, if you have issue with some of your code then post it here so we can have a look on it. We might able to prove that all JS API features work correctly
It turns out we were using a hyperlink on a worksheet, which prevented the getUnderlyingDataAsync() promise from firing. When we changed it to a string parameter on a worksheet hidden on a dashboard, it magically started working.
Short answer: Magic.