In my experience, the following works well but it is not prescribed by either Agile or by Scrum:
- You can indeed estimate every story in the Product Backlog, other than Spikes, in Story Points. The Development Team provide the estimate as they are the ones that will be doing the work.
- Story estimation is usually a part of Product Backlog refinement or Sprint Planning
- User Stories usually get broken into tasks during Sprint Planning, and occasionally during Product Backlog refinement
- Tasks are often estimated in hours. The Development Team provide the estimates as they are the ones that will be doing the work
- User Stories are used to measure velocity, because Velocity is the number of Story Points that are "Done" within a Sprint