Вы можете реализовать две версии этого метода:
public bool TryRefreshStatus(string status, out Status new Status)
и
public Status RefreshStatus(string status)
Первая может вызвать вторую в блоке try / catch и вернуть false, если исключение составляетвыброшены.Вы должны ловить только те исключения, которые вы ожидаете получить от обновления статуса, а не все исключения (например, не System.Exception).
Чтобы решить проблему с выпуском большого количества обновлений, я бы предложил создать очередь (первым пришел, первым вышел), в которую вы добавляете свои обновления.Затем создайте рабочий поток, который пытается опубликовать эти обновления в Twitter.После успешного обновления вы можете удалить его из очереди.В противном случае вы можете продолжать пытаться.
Возможно, вы захотите ограничить количество повторных попыток или максимальный срок обновления статуса.В зависимости от того, сколько вы публикуете, все, что старше часа (например), может не стоить повторять, поскольку это может быть уже слишком устаревшим.