My current LOR is "good but not great". Should I switch to a LOR whose doesn't know me well, but certainly thinks I'm a top student?
I think professor "you're good but not great" is doing you a great service by letting you know in advance that his letter will not be one that you want in your application.  If you are applying to an insanely competitive program, then indeed such a letter would jeopardize your application.  I've done graduate admissions at the 50th best math department in the US, and we can do better than "good but not great".

A letter from someone in an adjacent field is definitely not as good as a letter from someone in your field, but getting a letter from someone who was responsible for "many of the awards" you got is certainly strong.  The sentiment that you have award-winning mathematical skills should be a positive one on an application to graduate school in the sciences.

I would definitely switch the letters.  Also remember that the first professor really helped you out.  It is not the sort of help that is worth an effusive thank-you on your part, but it is worth keeping in mind and perhaps remembering to do for someone else someday.