The most important thing you omitted is how long the pulse is that you are measuring. 320 uS may be inconsequential for a 10 second pulse.
If timing is critical, then your best bet is to use an assembly interrupt that constantly looks at the input pin and calculates the stretch amount accordingly. If your processor is dedicated to the pulse stretching function, then only the number crunching needs to be in assembly. If you have a limited scope of pulse width, you could create a lookup table to return the delay, but the accuracy diminishes as the number of possible input values increases. How close to 30% of the value does the output pulse need to stretch?
A lookup table might take 12 cycles to impliment. This would be your fastest route without bumping the clock up.
It might be easier to do it in hardware. With the appropriate RC value on an unused pin, when the pulse comes in, you turn on your output pin and RC pin to start charging the capacitor. When the pulse stops, turn the pin attached to the RC network into an input, and test it to see when it becomes a low to the processor. The longer time it has to charge, the longer it takes to discharge to a "LOW" value. As long as you have the right values for your RC charge and discharge components, this should be quite accurate.

Hope this helps,
Ron