How can I block users from registering with disposable email addresses?
Like you mentioned it is impossible to block all disposable domains. 

If you want to end the madness, the most effective solution would be: Upon registration you send a confirmation link or code to a mobile phone number

Take a look at:


SMS Framework module
VoIP Drupal module


Using Unique field you could make sure that the phone number can only be used once. 

Checkout: How to send SMS messages (Drupal Tutorial)