Polling the backend canister every 100ms is very frequent. Could you try increasing the value of that interval to see if it helps?
@peterparker wrote an article about polling the IC here: Blog: poll the IC with web workers. He uses 2,000ms, maybe you could use that as a starting point and then possibly move the polling into the web worker to reduce the interference with the main JS thread.