is there a way to log a non-terminating error without forcing the script to stop with ‘-ErrorAction Stop’
You can use the -ErrorVariable parameter, and check for any records in that variable after the command exits:
Do-Something -ErrorVariable myErrors if ($myErrors) { # handle errors }