wp_schedule_event() set daily, but processed every second

Where are you putting the wp_schedule_event() code? My guess is, you have it somewhere that’s causing it to run on every page load, causing the action to be scheduled multiple times (like maybe you just dropped it in your functions.php?).

You only need to schedule the action once. The easiest way is to do it on activation of your plugin. Try something like:

function wpsx_7780_myplugin_init() {

  wp_schedule_event(time(), 'daily', 'cr_paid_link_manager_generate_expiring_link_email_action');

}
register_activation_hook( __FILE__, 'wpsx_7780_myplugin_init' );
add_action('cr_paid_link_manager_generate_expiring_link_email_action','cr_paid_link_manager_generate_expiring_link_email');

Then deactivate and reactivate your plugin. This way, the event only gets scheduled once, but the action gets added on every page load.

EDIT: I should also note that you’ll probably need to clear all those existing events you’ve created using wp_clear_scheduled_hook()