The using statement disposes your object before (in most cases) your Delegate gets executed. On single core machines you could see a race here, because sometimes it could work but mostly it won't. Simply don't put all this in a using statement but instead create the albm object normally and dispose it in the delegate you're calling.
var albm = isoStore.CreateFile("shared/media/" + dlSongInfo.id + "-NP"));
Deployment.Current.Dispatcher.BeginInvoke(() => {
try {
BitmapImage image = new BitmapImage();
image.SetSource(e.Result);
WriteableBitmap wb = new WriteableBitmap(image);
wb.SaveJpeg(albm, 358, 358, 0, 100);
} finally {
albm.Dispose();
}
});