login form generated by drupal_get_form('user_login_block') does not log in
You shouldn't need to render the form, and this may be causing your problems. The output of drupal_get_form() is a render array, so you can use that directly. Try changing this:

$user_login = drupal_get_form('user_login_block');
$out = drupal_render($user_login);
$block['content'] = $out;


To this:

$block['content'] = drupal_get_form('user_login_block');


Also, are you doing anything else to the block with preprocessing or processing? Is the system rendering the block normally, or are you rendering the block in some different manner, with a template or something?