A note to any learners who have struggled this far:
It is clear that there is no real agreement among native speakers, even those with long experience of teaching and/or writing.
I advise my students never to use ought to. There are good reasons for this:
1. As I noted in post #2, native speakers use should far more than they use ought (to).
2. Native speakers rarely use negative or interrogative forms of ought (to).
3. Should can always be used in place of ought (to) with practically identical shades of meaning.
4. Ought (to) can not always be used in place of should, as Philo pointed out in post #14.
If you have to use ought (to), for example in a multiple-choice question where you have to choose between different forms of the verb, avoid those using DO, and avoid those using 'to'. You are then more likely to hit on the answer the test-writer was looking for.