ECR imposes certain limitations on how often a scan can be performed:
An image scan can only be started once per 24 hours on an individual image. This limit includes if an image was scanned on initial push.
So probably best to automate the scanning separately from the other steps to avoid running into the LimitExceededException. Within Octopus this can probably be done using a runbook and a scheduled trigger that fires e.g. every 25h. But this can be done in any way and using any tool that’s easy for you.
Once the scanning is in place, one way to achieve what you’re describing is to create a step with your preferred client library or simply using scripting, to make a DescribeImageScanFindings request to the ECR endpoint which will return detailed scan results that you can then parse to determine whether you want to continue.
Here you have a few options. If you just want to terminate the whole process, you could simply throw an error so the entire process fails. Makes it nice and visible. Alternatively, you could set an output variable to be used as a run condition for subsequent steps. Just keep in mind that a (partly) skipped deployment is still a successful deployment which might not be obvious steps have been skipped.