मैं आपको सत्र स्टोर करने के लिए MySQL का उपयोग करने से अत्यधिक हतोत्साहित करता हूं। मैं redis या memcache का उपयोग करने का सुझाव दूंगा। यदि आपका सर्वर क्रैश हो जाता है तो रेडिस डेटा को डिस्क में संग्रहीत करेगा। Redis आपको सत्र समाप्त करने के लिए एक TTL सेट करने की भी अनुमति देता है, जो #4 को हल करेगा।
यदि आप आराम आधारित कॉल का उपयोग कर रहे हैं, तो मैं सुझाव दूंगा कि सत्र को हेडर में कुकी के रूप में जोड़ें और इसे आगे और पीछे करें। मूल रूप से जिस तरह से ब्राउज़र उस पृष्ठ तक पहुंचेगा उसका अनुकरण करना। मुझे लगता है कि इससे परीक्षण भी आसान हो जाएगा।