Ok, so it’s not CPU load the term you really mean. If you are not running an RTOS or the system does not (somehow) sleeps, then the CPU it’s said it’s running always at 100%.
I think you refer to the time the program is running in the loop() function doing nothing (profiling how much a function takes to execute).
Well, the library functions are blocking. This means that when you write to the SD the write function will wait until all the data is written and an answer is sent back. This is the only way to ensure the data sent was written.
This behavior can be changed only by changing the provided library to avoid waiting for an answer (not recommended) or check the answer asynchronously.
In any case, the CRC calculation has little impact.