There is a reason for the "unable to coerce '2016-04-06 13:06:11.534000' to a formatted date (long)" error, although, the timestamp column actually stores milliseconds in all versions, there seem to be some differences in how you can query based on the version:
Cassandra <=2.1 does not seem to support milliseconds in query: yyyy-mm-dd'T'HH:mm:ssZ
https://docs.datastax.com/en/cql/3.1/cql/cql_reference/timestamp_type_r.html
Whereas >=3.0 supports it: yyyy-mm-dd'T'HH:mm:ss.ffffffZ
https://docs.datastax.com/en/cql/3.3/cql/cql_reference/timestamp_type_r.html
I verified being able to select/insert in a newer cluster but not in old cluster using my IDE connected on 9160 Thrift port, have not yet tried on cqlsh:
INSERT INTO "sp.status"("ams", "load_start_time")
VALUES('RRG', '2018-05-01T16:57:18.123+0200')
;
-- same with select, works on new cluster but not old
SELECT * FROM sp.status WHERE ams = 'RRG' AND load_start_time='2018-05-01T16:57:18.123+0200'
;
The driver seems to be able to map a java date and store milliseconds in both old and new cluster though.
=Cassandra 2.1 cqlsh uses native binary protocol (9042), previous versions use thrift (9160) although this should not change.