Во-первых: нужно явно отделить механизмы ожидания инита компонента, и ожидания события в каком-то компоненте.
Для событий - любой реализуемый механизм (калбеки/события/промисы etc)
Для ожидания инита компонента - реализация в механизме компоннентов в виде Components.await(node, componentName) -> Promise
Почему bloko/common/ready плохо:
- bloko никак не связан с нашей структурой, и не должен завязываться на наши особенности инициализации компонентов, блоко должен предоставлять независимые модули, которые будут инититься синхронно по зависимостям.