Saya akan sangat menyarankan Anda untuk tidak menggunakan mysql untuk menyimpan sesi. Saya akan menyarankan menggunakan redis atau memcache. Redis akan menyimpan data ke disk jika server Anda mogok. Redis juga memungkinkan Anda untuk mengatur TTL untuk mengakhiri sesi, yang akan menyelesaikan #4.
Jika Anda menggunakan panggilan berbasis istirahat, saya sarankan hanya menambahkan sesi ke header sebagai cookie dan meneruskannya bolak-balik. Pada dasarnya meniru cara browser mengakses halaman itu. Saya pikir itu akan membuat pengujian lebih mudah juga.