How to know when the pawn and controller is ready?

Instead of begin play try using event on possessed. Your controller will be initialized before that is called.