In the plugin, force a redirect back to the page the delete button is on.
public function onUserBeforeDelete($user)
{
$app = JFactory::getApplication();
//possibly set an error message
JError::raiseWarning( 100, 'Warning: Cannot delete user profile' );
$app->redirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit'));
jExit();
}
That example can be adjusted, but it should work to just simply stop the user, you could go into some mysql queries to "disable" the user instead, to make it seem like it was disabled rather then just setting an error as well.
https://github.com/joomla/joomla-cms-examples/blob/master/plugins/user/example/example.php
The link there was last edited less then a year ago, so I highly doubt that onUserBeforeDelete
had any major changes.