A few thoughts - I don't think it's the switch. The switch is operated a metal rod that goes from the key cylinder to the switch. The switch is spring loaded and will go to "off" if there is no pressure from the rod. The timing between the key cylinder and switch can get out, but that would not explain the 15 second delay. The springs in the switch could be weak, but I don't think that's likely. The switch can be disassembled, cleaned, greased, and reassembled, but it requires "dash board diving".
I would check the ASD (automatic shut down) relay first. If your horn works properly, you can swap these two relays and see what happens. The ASD is designed to cut off the fuel and spark if you have a wreck, based no engine rotation (Crank Position Sensor input). If you have a fuel pressure gauge, hook it up to the fuel rail and monitor pressure after you shut off the switch. If the fuel pressure drops throughout the 15 second period, then you know the ignition circuit is causing the run on (power to the pump is being turned off). Try this and let us know what you find.