Could be a short in the harness somewhere, a sticking starter relay, or a short between the two wire cable going down to the starter itself.
Since you replaced it it's probably not the starter.
Separating between a harness/ underdash / ignition switch problem is easy.
Get it "stuck" hopefully with a helper who can --in the impending emergency--yank off the battery ground.
Before you try the test, pull the yellow "start" wire (push on connector) of the start relay, and "hook it back up" but use a clip lead. This is SO YOU DO NOT BUMP the starter relay, which may be sticking
With the starter "stuck" on, unclip your test clip at the wire so you do not bump the relay
If it stops, two things---you either have a harness problem or bad ign switch
If it does NOT stop, take a screwdriver hammer, and bump the start relay to see if it "unsticks."
If it dos NOT stop, unhook the battery. Now unhook the exposed "square" connector at the start relay. Again, use a (big) clip lead to "hook back up."
With the starter again stuck, unclip your lead. If the starter dies, it is probably a stuck start relay.
IF IT STILL TURNS it may be the 2 wire cable leading to the starter. With the battery unhooked, unhook the small lead right at the starter solenoid. Once again, "hook back up" by jumpering with a test clip.
One last time, with the starter stuck, unhook your clip. This finally had damn better kill the starter.
If not, make darn sure your battery cable at the starter is not lying over and contacting the solenoid terminal.
It's all a matter of "its logical" said Mr Spock.