Just linking for reference an in-depth discussion about abstol and reltol from a few months ago: Setting `abstol` and `reltol` when solving the Schrödinger equation with OrdinaryDiffEq (note that the answer that’s marked as correct isn’t 100 % correct, so don’t stop reading there).
I have no idea why lowering the tolerance makes your solver unstable, though. Probably a good idea to experiment with different solvers, but it would also be good to know why the default choice screws up like this.