Я пока не очень понял смысл приведенного кода.
game.Status = "playing"
должен выставиться сразу, или сначала нужно послать несколько сообщений пользователям с интервалом в 1 секунду, и уже потом игра переходит в состояние playing? Предположу, что второе.
Навскидку, вижу несколько ошибок в коде. Во-первых, метод DoWork должен возвращать Task, а не void. Тогда метод StartAsync будет выглядеть так:
public async Task StartAsync(CancellationToken cancellationToken)
{
// Хорошим тоном считается использовать CancellationToken, если он есть.
// Иначе задачу невозможно будет отменить.
await DoWork(cancellationToken);
}
Далее, вы зачем-то отправляете сообщения клиентам в отдельном таске, хотя логичнее было бы сделать это тут же (если моё предположение верно, и нам надо перевести игру в playing только после отправки всех сообщений).
Ну и как сказали выше, using нужно расширить до конца метода.