Setting caps lock key to CTRL but still function as caps lock if I press for long enough
Using KeyRemap4MacBook, you could add this to private.xml:

&lt;autogen&gt;--HoldingKeyToKey-- KeyCode::CONTROL_L, KeyCode::CONTROL_L, KeyCode::VK_NONE, KeyCode::CAPSLOCK, Option::NOREPEAT&lt;/autogen&gt;

The threshold for holding a key is 0.2 s by default, but it can be changed in the second tab.

This would change fn+caps lock (control) to caps lock:

&lt;autogen&gt;--KeyToKey-- KeyCode::CONTROL_L, ModifierFlag::FN, KeyCode::CAPSLOCK&lt;/autogen&gt;