The basic answer to both questions is hook_form_alter(). You'd need to check the $form_id parameter to determine if you are on a node edit form (they get the id [contenttype]_node_form, see the first line of the example implementation on the API documentation page for a way to trigger for all content types).
For your need 1, you'd check $node->nid to see if it is your specific node. If so, you'd alter the forms submit button definitions '#access' entry to disable it, if you're not on a preview page (see the node_form() function from the node module on how Drupal does this - pretty far to the end of the function).
For your need 2, you'd simply change the '#value' entries of the submit and preview button definitions in the $form array.