, however you're implying using interrupts
No, I'm suggesting you live with the interrupts you already have, and use the hardware timers to generate your waveform.
The "glitch" you're seeing is caused by the timer used to generate the Arduino's software "micros" and "millis" clock.
If you have a dig around in the Playground, you should find tutorials and hints on how to user the timers to do what you want.
The Arduino timer code is is
hardware/arduino/cores/arduino/wiring.c