For your mypy performance question, make sure it's using incremental mode [1] so that it can skip checks on code that didn't change. Yes, it is probably among the slowest of type checkers, but it is also quite thorough.
It sounds like incremental mode is the default now? I've noticed that it runs much faster after the initial run, with no special configuration
But that link also mentions daemon mode [1], which supposedly "can be 10 or more times faster", so that could be something to try. Running as a persistent server with an in-memory cache is probably part of why LSP-based type checkers like Pyright can perform better than mypy.
[1] https://mypy.readthedocs.io/en/stable/command_line.html#incr...