It turns out that AudioContext() counts as autoplaying, even though no audio is being played, and it is blocked from running. Solution is to not create AudioContext() until an input is provided.
Answer from jcnews1 on Reddit: https://www.reddit.com/r/CodingHelp/comments/1ji1tvn/comment/mjn0kra/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button