Why print $block->content sometimes converts line break to  but sometimes does not?
This could be due to the input format you are using for the block's content region.

Assuming you are using the default input format (id 1), the filter option Line break converter is probably enabled. See admin page: /admin/settings/filters/1

You can uncheck this setting in the default input format or you can use a different input format by clicking on the Input format fieldset under the Block body content region.

If you do not have any other input formats, you can add a new one that does not use this Line break converter setting here: /admin/settings/filters/add

Note: Being able to configure or add any input format requires the administer filters permission from the filter module.