Is it possible to prevent disabled Matrix Blocks showing in a Live Preview?
It's definitely a bug in live preview but looks like you can work around it.

This doesn't appear documented at all—so be careful—but you can use .status() to get the block's status. It looks like an IF block is enough to get a matrix block to refresh the live preview.

{%for block in entry.matrixBlock %}
   {% if ( block.type == 'supertable' and block.status == 'enabled') %}
  {#do whatever #}
   {%endif %}
{%endfor %}


I found out about .status out awhile back messing around trying to figure out if there was a good way to display a "sold out" status for a particular show date (for example):

{%for thedate in entry.showDates.type('date').status() %}

    {% if thedate.status() == 'disabled' %}
        &lt;strike&gt;{{thedate.showDate|date('m/d/y')}}&lt;/strike&gt; SOLD OUT! 
    {% else %}
        {{thedate.showDate|date('m/d/y')}}
    {%endif%}&lt;br&gt;

{%endfor%}