You have something going on. Either the heater is too small, the spa is huge, or you're also heating the pool. Make sure the spa is isolated completely from the pool when running the heater. There should be no spillover.
When I heat the spa, I move the valves around and draw the water in the spa down a few inches to allow for the displacement when we get in. There's nop point heating it to just let it overflow into the pool. I also don't run the booster or the air jets, and I stick the cap from a can of spray paint over the air intake pipe, because cold air being injected defeats the whole purpose.
You can crunch some numbers. A gallon of water is about 8 pounds. One BTU raises one pound of water one degree Fahrenheit. Calculate how many pounds of water and how many degrees change and look at the BTU rating of your heater. That will tell you how long it should take to heat it in a perfect world. If it takes more than twice that, something is wrong. You lose some heat to the outside air and warming the concrete walls.