I would recommend you use the expect methods for most everything. Switching back and forth, wondering which method would be better means that it will become more difficult down the road to tweak things to add a smidgen more functionality if you didn't start out using expect for that task.
in reply to A few questions regarding Expect.pm and possible alternatives
Expect is pretty mature, as such, there isn't a need to add features all the time, and there are apparently not many bugs that need squashed, so it's age could be considered a good thing. It works, and works well.
Update: (I didn't answer other questions)
If the expect script parts are complicated enough, you might find that writing actual expect scripts rather than embedding them in perl, and calling those scripts from perl may simplify the tasks. This is typically what I've done with my scripts. Without actual or simulated examples, it's difficult to point you in a direction or suggest improvements.