Right, there is no difference here from the Evolution behavior; the URL is not going to be valid until the next request is made because the new data you just saved is not yet in the context cache where the URLs are defined. We might be able to add the capability to reload the current context data manually in the same request, but I recommend just doing a redirect to the same page or another location after adding the Resource to avoid this problem for now:
On a side note, to set the "content" of a Resource, use:
<?php
$resource->setContent('This is a test page');
?>
This will be critical once we start introducing content versioning and localization features in the core. Your code should never access $_fields; if you find you think you need to access $_fields, then you likely need to enter a bug report for MODx or xPDO.