Thank you for your suggestions!
It seems I had completely forgot how mutability works
. I have redesigned my functions such that B_chunk defines a buffer A_buffer = Array{Float64, 2}(undef, n, t) and initial state A_previous = zeros(n), while A_chunk! simply updates them. With this change, along with using @view(s) where necessary, I was able to greatly reduce the number of allocations down to \propto 8\mathtt{n}\times\mathtt{chunk\_size} bytes.