Verilog Error: System task finish is always executed
So I installed ModelSim and that somehow convinced ISE to stop complaining about $finish. The weird thing is that I'm still not using a ModelSim simulator, it's using ISim. So I don't know what was wrong, but it works now :/ not totally helpful to future folks, sorry!