Hello Darren,
As we understand, both actions are executed in the same business rule. In this case, the behavior is expected as all value references resolve before the entire rule execution. As such, you will always have the %unicodePwd% value reference resolve into an empty value. The behavior is by design and cannot be changed. The only option is to move the email delivery to a business rule triggering After resetting password of a user account. For the rule to trigger only for new accounts, you can mark them in your current business rule (e.g. set a custom Boolean attribute to true) and clear the mark after the email is sent. For example:
Business rule triggering After creating a user
Business rule triggering After resetting password of a user account