Really good idea to have a video explaining the situation (even if it does seem to be a little truncated) it does help when trying to understand the context.
I think it'll come down to how different each of the 4 modals needs to be. My preference here would be to have a single modal with a single form and show/hide fields based on what "mode" it's in - so maybe in your case the "mode" would be which table and button was clicked and what action was being requested.
If they're fairly similar functions (sending an email) then this should be a good option to explore - have fields that aren't visible based on the action.
If they are very different functions then separation would be a more appropriate option.
Your thinking is correct though, your spidey-senses have spotted that each table change is going to need more maintenance work from yourself and creating a reusable, modular approach, is always going to make that easier.
I realise that's not a very straightforward answer ("it depends") but understanding your use case will determine what the "best practice" is here