People generally dislike rating or giving feedbacks. Just look at the amount of reviews and ratings for the apps in app store. User would more likely to rate if:
a) There is a strong motivation factor, either they really like your product (help them solve a particular problem) or they absolutely hate it; poor UX, high downtime etc
b) There is an incentive to do so
Since you mentioned you are targeting active and engaged users, I'm assuming that these are average to happy users.
1) Although there are no clear rules to identify when is the right time, I would probably throw the dialog after 3 or 4 repeated visit from the users. Especially after they have successfully completed one of your core task in your app.
2) That is not a good idea in my opinion. User would questioned "Hey didn't I just rate the product before?". You might want to explore rating specific feature instead. Have some sort of "fb Like" button placed beside the feature that you would want to rate. User can choose to rate at his own discretion.
I have attached a similar feature used in path app to give you some ideas.