Adding the TEMP_FOLDER constant to _config.php seems to be too late in the startup-process. I had to add it to _ss_environment.php to make it work. Eg.
if(!defined(TEMP_FOLDER)){
define('TEMP_FOLDER', realpath('tmp'));
}
When a folder called tmp is in the same directory structure (eg. webroot) as the _ss_environment.php file.
There's another issue though: If you don't serve pages via index.php, the BASE_PATH will be wrong and Core.php will search for a _ss_environment.php file in the real location of the framework folder (not the symlinked framework folder).
Adding the following lines to an _ss_environment.php file in the same folder as the real framework folder correctly sets the base-path
// make BASE_PATH point to the directory where the symlinked framework folder resides!
define('BASE_PATH', rtrim(dirname(dirname($_SERVER['SCRIPT_FILENAME'])), DIRECTORY_SEPARATOR));
// set temp folder accordingly
define('TEMP_FOLDER', BASE_PATH . DIRECTORY_SEPARATOR . 'tmp');
The code above fixes all issues I had with symlinking the framework and cms folders to several sites.