Цитата
Сопротивления на нескольку десятков Ом последовательно в линиях D+ и D- имеются ?
Угу, по 33 Ома. Конденсаторы тоже есть - всего 22 пФ, но параллельно им стоит защитный диод, у него своей паразитной емкости много (до 150 пФ по даташиту).
К тому же конденсаторы по спецификации USB не нужны - оговорена максимальная емкость (150 пФ) на линиях D+/D-, а не минимальная. Подозреваю, что с учётом разъема, дорожек и проч. я её несколько превышаю

Собственно, вопрос больше софтовый: аппаратно мы проблему победили; после корректного заземления всего и вся вероятность сбоя снизилась на порядок. Интересно, как бороться с этим программно.
Совершенно случайно обнаружил свою ошибку: на входе VBus (используется именно как VBus) включен pull-down. На эту ногу заведено питание с USB через RC-цепочку 3.3 кОм - 0.1 мкФ.
Если убрать подтяжку, жить становится заметно веселей - в суспенд мы уходим реже, и корректно оттуда восстанавливаемся (передёргивая Connect, ничего лучше не придумал).
Теперь вопросов два:
- почему подтяжка влияет на состояние connect и где об этом написано в документации?
- (исходный вопрос) как корректно выйти из suspend ?