I know it's going to take days to fully sync (I have an HDD), but is there a way I can sync from scratch in the background and keep my computer usable in the meantime?
You could maybe try setting
--max-concurrency=1 --prep-blocks-threads=1 which will limit the threads used. Of course, this will slow down your full sync.
You could also try these settings in combination with first downloading the raw blockchain outside of
monerod and then importing. See instructions here. That way you are simply downloading a ~70G file before even processing (importing), it to the daemon. Downloading a file shouldn't slow the rest of your machine down. The bit that does the resource intensive work is the importing, and if you use flags like above, you will be limiting the resources made available to
monerod at the expense of it taking longer to process.
Will changing the block sync size or setting a bandwidth limit help?
I don't think changing the bandwidth settings is the best way to go here. You'd be throttling your bandwidth usage as opposed to the resources being used by your system to process the downloaded data. Sure, you'd end up spending longer downloading as opposed to processing, but when you are processing, it's going to zap the same amount of system resources that you are currently seeing.