Giannis,
the first query measures the disk speed for loading the 300k relationships and end-nodes. Do you have a spinning disk or SSD ?
The second one should be much faster, but it depends on your memory settings.
How do you run the JVM for Neo4j ? Heap size and how much memory does the machine have?
Also these nodes with that many relationships are mostly hard to handle. All queries coming along them explode in cardinality instantly.
It is not so much a problem to have long paths through the graph than having nodes with that many relationships. (at least for now).
Other options are: sub-divide the actions by other dimensions, e.g. time (month, day)
And another option is to pre-aggregate those e.g. on a timescale, so if you imagine a tree modeling time (year - month - day - actions).
Then you can aggregate the # of actions as property on the day node (in a batch fashion) and then query over the time-tree according to the time ranges you want to cover.
HTH,
Michael