I have an idea that may make this easier .. I'm wondering if you're keen to give it a try. If it works well for you, I may introduce it as a packaged feature.
The NCrunch workspaces aren't really designed with the intention of executing applications directly. Because they always end up in different places, and it can be hard to tell which workspace holds the latest files, you invariably need to rely on the 'browse to workspace' option via the Tests Window.
A way around this could be to make sure that a copy of the files always end up in a consistent place.
Create a directory on your disk - c:\temp\workingdir, then try adding the following build step to your UI project:
<PropertyGroup Condition="'$(NCrunch)' == '1'">
<PostBuildEvent>xcopy /Y *.* c:\temp\workingdir</PostBuildEvent>
</PropertyGroup>
... And ensure you have NCrunch configured to run post build events for this project. My assumption (if you're already running from the workspace) is that the project either works independently or you already have the 'Copy referenced assemblies to workspace' setting turned on. In this way, it should be fine to simply copy the files from this project as part of a build step. If you want to disable the 'Copy referenced assemblies to workspace' setting to improve performance, you can also place this build step against the dependency projects in your solution so that they are also copied into the temporary directory where they can be used by your UI.
In theory, the copying shouldn't interfere with parallel execution and should always leave you with a automatically built set of files stored in a consistent location on your disk. If you want to go a step further, you could always set up a shortcut from your start menu (or some kind of O/S hotkey tool) that will automatically launch the .EXE from the temporary directory. This would be about as close to F5 as you can get.
Anyway I'm eager to hear if this works for you. If so, I may be able to make a more formal approach built into the tool.
Cheers,
Remco