Unfortunately, TVs are just not designed for use as search criteria. It's always going to be slow. Also, if any TVs are set to their default values or have @ bindings (like @INHERIT), it gets even more complicated and slower.
The first thing to consider is whether there are any unused Resource fields you can co-opt for those two values, e.g., summary, introtext, description, menutitle, menuindex. If you can use two of those (menuindex would only be good for the numeric value), it would make things really fast and easy.
If that doesn't work, extending modResource would be the next best thing. I would do it with classExtender. That would allow *much* faster searches with something like this:
$c = $modx->newQuery('resourceData');
$c->where(
array(
'Resource.parent' => '51',
'Resource.deleted' => '0',
'Resource.published' => '1',
'resourceData.membership_status:>=' => 100,
'resourceData.deal_name:!=' => '',
));
$resources = $modx->getCollectionGraph('resourceData', '{"Resource":{}}', $c);
More info here:
http://bobsguides.com/blog.html/2014/06/02/why-extend-modresource/
http://bobsguides.com/classextender-class.html