If by "inside," you mean, "in component A's local DOM template," then component A's `ready` callback isn't invoked until after component B's `ready` callback. If you're adding component B dynamically, or component B is in component A's light DOM, it's more complicated.
The element does have an isAttached property, which you could check. This won't be true until the element is ready and attached. But there's no event fired when the component is ready unless you add one yourself.
If you add a component dynamically, you could call `Polymer.dom.flush` to force it to ready itself--among other things, I believe that call flushes the queue of elements waiting to be upgraded--but forcing that kind of synchronous behavior is probably a performance antipattern.
Cheers,
Arthur