The way you handle a roughing and finishing pass depends a lot on your machine. Generally, the less you spend on your CNC the more work you'll put into doing this. It also depends on the software you use to generate your gCode. But, for your case, the machine will likely pause and retract for the tool change, like you mentioned.

A major difference between a print job and a CNC job is that a 3D print job is an all in one job. It almost always begins your part and finishes it without stopping. CNC jobs are usually done in segments. When I make an aluminum part, for instance, I do all of the CAM work in HSMWorks to go from my stock to my finished part. However, this entire job is broken up into different subsets. One subset may be finishing the top of the part, another could be drilling holes, and one could be chamfering (smoothing cut edges with an angled cut). Depending on the software and CNC you have, you can run each segment one at a time, at which point your CNC will return home where you can change out a roughing bit for a finishing bit. On inexpensive machines with free software (XCarve + Easel), the machine will automatically return to its home position after doing the roughing and wait for you to put in the finishing bit; then you tell it when its ready to start cutting again. There are some simple (but not precise) ways of changing bits, and expensive (very precise) ways of changing bits. For most hobby cases, you can get away with changing a bit and then adjusting the z-height manually to deal with the difference in tool lengths between your roughing and finishing bit. This way your machine will know the new height of the new bit and can continue cutting the original part. More expensive machines use automatic tool changes, where you tell the CAM software which bits to use and it will physically change out the bits from a reserve of bits that you setup near the machine.