either is fine but i personally use the pawn/actor or even an actor component for modularity as i may not even need an AIController. it all depends on your game design.
whatever you use you can add an EventDispatcher for CommandComplete which returns the Actor if needed and if the command was successful
If there are many pawns, then typically you will not possess any of those with your player controller. Instead, the player controller will maybe possess a camera pawn, or just be detached and contain a camera itself and move around itself.
Each unit will have its own AIController, and that AIController will be given commands by the player input, probably funneled through the playercontroller, but, crucially, this is a different kind of “command” than the tight coupling between a player controller and a player pawn.
The “move to” operations are functions of the AI controller, not the pawns – you should tell the AI controller of each unit to perform the actions. Also, the AI controller default for a pawn has a popup for whether to be possessed when placed in a level, when manually spawned, or both – you typically want this set to “both” even though that’s not the default.