1) Moodle has its own capability for dependency, so if you want a part/video to be watched before user can proceed to next level, one can do that yes, but this does not ascertain that the viewer has actually watched the video, so for example you have a video of 20 minutes, you can limit other sections to be opened if and only if that video section has been watched for 20 minutes, but then there is a catch, if user started the video and went off to make tea , I would take a small quiz right after video, based on that video to make sure the content has been watched. SCORM can do that yes, getting a quiz within a video, but SCORM support is bit shady, not that moodle doesn't supports it, but it sometimes has showed issues when upgrading to higher moodle versions.
2) for videos, Moodle can play videos directly when uploaded into courses, or linked from external source. but this will be Progressive Download only, means content will be downloaded into end user's PC then played (YouTube Embed is exception), therefore you dont need external server to play videos, BUT, if you want to stream videos (specifically thinking case of Adaptive BitRate Streams) where videos are played based on end-user bandwidth (low resolution videos for low bandwidth clients), then yes an external video streaming server with video player capable to handle that stream will be required, as well if you dont want users to download directly from your site using something like Internet download manager. As in case of ABR streaming, streaming server actually sends chunks of videos to end player rather than sending whole video.
3) Moodle is learning management system, BUT you can link to WordPress and use its capabilities (WooCommerce, Shopify etc Plug-ins) to get the shopping cart experience, where WordPress will work as the shopping front, listing all courses and moodle as actual course delivery/assessment mechanism.
Now waiting for additional input from Mary, Helen, Emma, Ken, Rick etc as I am definitely below them in terms of suggestions.