Bad email bounce messages should be sent to the "return path" email address specified in the From settings in Universal email.
You would filter out blank email addresses with a WHERE clause in your recordset to remove them like: WHERE emailColumn <> ''
One way to break up the email into groups of 200 is to add a limit clause to the recordset like: LIMIT 200
That will only return 200 rows. Then you could filter out already sent emails by using the email log to remove email addresses that have already been sent to using something like: WHERE emailColumn NOT IN (Select emailTo FROM logtable WHERE DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= emailDate )
That would remove all email addresses that have been sent in the past day... so putting it all together you might have:
WHERE emailColumn <> '' AND emailColumn NOT IN (Select emailTo FROM logtable WHERE DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= emailDate ) LIMIT 200
Then you could keep sending the email until the recordset was empty, which you could identify by adding a "done" message with the server behavior "show if recordset is empty" applied to it.