Runs very smooth here with a stable 300 fps when running the exe
Specs : see signature.
Maybe an option for increasing the framerate is using predefined parameters like doFog or doTangent within the effect file to minimize the amount of instructions. Since you're using 3 VSs and 3 PSs due to the dynamic lights and thus logically 3 passes to render it out, this might work Eventually, I even think you don't need shader model 2 anymore because these predefined parameters were developed for decreasing instruction rate which leads into a lower shader model and a higher framerate
Anyway, great effort fogman !!

Cheers

Frazzle