That seems to be fine as checkpoint, the timing there is not correct, but you can enable log_checkpoints=on. Based on your yesterday checkpoint, the WAL difference is about 1.3 - 1.4 GiB hour of write or about 25 MiB/min write, not too much.
For about WAL rotate, your archive_timeout has did that job with 15 minutes to force rotate the 1 WAL file.
For the 4 GiB of max_wal_size, it is just the size-based checkpoint soft limit, so with less than 1.5 GiB of WAL, no size-based checkpoint, just the time-based checkpoint.
But still the 1h checkpoint_timeout seems a bit large but it could depend on the number of data write so if it is OK for you then you can go with that setting.
Have a nice days.