Edit: I found the issue. If anyone else is having this issue, here is the code that worked:
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto('https://www.tiktok.com/login/phone-oremail/email');
await page.type('input[name=email]', 'email', {delay: 20})
await page.type('input[name=password]', 'password', {delay: 20})
await page.evaluate(() => { document.querySelector('button[type=submit]').click(); });