Ok, so the problem here was that somehow my iPhone was connected to iCloud... But it wasn't at the same time... This is really weird, and Apple should at least notify on this somehow, because my iPhone was connected to iCloud and synced. Wow.
Worked the same for me, though also required e) after a) to d):
a) going to the apple discussions (as mentioned) to 'register' my device(s) with my apple id. (weird)
b) turning iMessages off and on (on both devices)
c) turning my icloud off and on (on both devices) (scary dialog boxes, push on)
d) turning by bluetooth off and on (on both devices)
and finally, after none of that worked,
e) turning both devices off and on.
Presto, it finally worked. The feature only seems to work if the email or message or calendar (whatever you want to hand-off) is actually open on the screen on one of the devices. Unlock other device and the email or messages or whatever icon appears bottom left. Swipe it up and roll.
I have had a few of these issues with icloud and apple id's. Seems like you really have to reset all icloud and messages services to get hand-off working properly.
I think the unerlying issue is that Yosemite will not load kext (kernel extensions) unless they are signed by an authorized kernel extension developer. However in 10.8 and earlier, kexts could not be signed and signed kexts for 10.9+ will not load in <10.9.
I experienced the same issue loading unsigned tuntaposx for the vpnc cisco client.
You can override this behavior and allow the cpfw.kext to load in Yosemite by putting your computer into kext developer mode. This essentially reverts to the 10.9 behavior by allowing unsigned kexts to load.
sudo nvram boot-args="kext-dev-mode=1"
Now reboot and your kext should load.
You can revert by doing this:
sudo nvram -d boot-args
Best Answer
I contacted ExpressVPN support and got some answers.