Да. А ещё эффективнее - проверять периодически, в фоне. Чтобы потом вообще не ждать.
В моём последнем драйвере SPI-флешь алгоритм проверки завершения записи/стирания был такой: После завершения любой операции записи/стирания, я запускал таймер задержки на время T1, по истечении которого, стартовал транзакцию чтения регистра состояния флешь (проверки флага BUSY). Если флаг BUSY ещё остался активен - перезапускал таймер на время T2 и повторял так операцию многократно, периодически. Если API записи/стирания было вызвано до момента обнаружения снятия BUSY, то задача ОС, вызвавшая это API ставилась в ожидание BUSY, а время T2 опроса BUSY опционально укорачивалось (если запрос к API был высокоприоритетный). Соответственно - при обнаружении снятия BUSY, все ожидающие доступа к API записи/стирания задачи возобновлялись по их приоритету.
Время T1 - выбиралось в зависимости от завершившейся операции - стирания или записи. Выбиралось чуть больше минимальной (по даташиту) длительности соответствующей операции.
Таким образом, при произвольных, непрогнозируемых по времени запросов к API записи/стирания от разных задач ОС, в большинстве случаев не нужно было ждать опроса BUSY перед началом транзакции записи/стирания.
PS: Это если серьёзно подходить к реализации драйвера FLASH и стараться максимально ускорить работу.