Yvesik, ну если я верно понимаю API keyboard, твой скрипт должен работать. Вставь отладочный print() в цикл для проверки, ну и небольшой time.sleep() (миллисекунд так 50-100) может не помешает...
Правда, есть потенциальная проблемка, не связанная с твоим вопросом.
Метод press() посылает сигнал "клавиша нажата и удерживается". Он НЕ посылает последующий сигнал "клавиша отпущена".
Поэтому зацикливать его довольно-таки бессмысленно, после первого нажатия приложение может не отвечать на последующие, пока не получит сигнал "W отпущена". Если тебе нужно спамить нажатия W, а не держать кнопку, то нужно было смотреть в сторону send().