Partially AI controlled player Character

Hi,
I have a classic ACharacter controlled by PlayerController in my scene. I would like, during runtime, occasionally, ignore inputs from the user and allow my ACharacter to be controlled by AIController. Even though the ACharacter is AI-controlled, it is active period of gameplay since the user influenced what the AI system would do (lazy / automated tasks). Eventually I would like to keep the camera behavior as when controlled by the PlayerController as well as everything related to network / online replication.
I was thinking of create my custom PlayerController CustomPlayerController with a property AIController. I would then be able from my CustomPlayerController to Possess and Unpossess the ACharacter. I would like to get some advices on how to implement such functionalities as I would like to believe that it is a common case scenarios in video games.
Thank you for your help.