I'm a bit surprised that the leonardo isn't showing up even briefly when you press reset - I've bricked my leo many times and it always shows up after a reboot for the brief bootloader period, but perhaps the function you called has affected the bootloader somehow.
Short answer is, borrowing an arduino from a friend and doing the ArduinoISP thing is the easiest way to get it back.
(and the reason the Leo is such a pain with a hung sketch is because it doesn't have a dedicated USB comms/bootloader chip, but that's also why it can do HID keyboard, mouse and joystick)