Twilio Extension: "The selected contacts have no valid phone, or prefer not to receive SMS, or are deceased."
Just the start of debugging, but maybe it evolves to a complete answer. I focus on the fact that the Send SMS menu does not show on a contact with a valid mobile phone. Can you execute the following script with your test contact_id (my test contact id = 204)?

&lt;pre&gt;
&lt;?php
  $testContactId = 204;
  civicrm_initialize();
  if(CRM_SMS_BAO_Provider::activeProviderCount()){
     echo "SMS provider configured\n";
     $mobileTypeID = CRM_Core_OptionGroup::getValue('phone_type', 'Mobile', 'name');
     echo "Mobile type id =  $mobileTypeID \n";
       print_r(CRM_Contact_BAO_Contact_Location::getPhoneDetails($testContactId, $mobileTypeID));
  } else {
     echo "NO Sms provider configured\n";
 };
?&gt;
&lt;/pre&gt;


To execute the script save it to a file (for example test.php) and run it with

drush scr test.php


Hopefully, we get a hint if the configuration of the provider is the problem or the details of the test contact. 

Update
When you have only web access the code can be executed on a Drupal instance as follows:


Enable the Drupal PHP Filter module.
Create a new Article
Past the script as contents of the article
Set the filter to PHP Code
Use the preview button for the result.


A word of warning, enabling the PHP Filter is a security risk because it allows the execution of arbitrary PHP code in every Drupal page.