Because the instance method ActionMailer::Base#mail takes precedence over SendGrid::ClassMethods#mail method, the module method was never run.
To fix this, I override #mail in the class_eval when module is included, moving the mail method from ClassMethods directly in here and adding at the end #send_grid_old_mail method call, which is just an alias for ActionMailer::Base#mail method.
Working on a fix for mail override method
Removed protected and moved super to bottom
Fixed the issue with inherited mail method not behaving as expected, …
…it didn't append sendgrid headers
Solved the issue with mail inclusion, where class ActionMailer::Base#…
…mail method completely hides the module method
Changed the code to make it more simple, tests now work correctly
Forgot to remove commented #mail method from the module itself